跳到內容

ExtensionType 類別

方法

ExtensionType 類別繼承自 DataType,但也定義了擴充類型特有的額外方法

  • $storage_type():傳回用於儲存值的底層 DataType

  • $storage_id():傳回對應於 $storage_type()Type 識別符。

  • $extension_name():傳回擴充名稱。

  • $extension_metadata():以 raw() 向量的形式傳回擴充 metadata 的序列化版本。

  • $extension_metadata_utf8():以 UTF-8 編碼字串的形式傳回擴充 metadata 的序列化版本。

  • $WrapArray(array):將儲存 Array 包裝成具有此擴充類型的 ExtensionArray

此外,子類別可以覆寫以下方法來自訂擴充類別的行為。

  • $deserialize_instance():當初始化新的 ExtensionType 時,會呼叫此方法,並負責解析和驗證序列化的 extension_metadata (raw() 向量),以便 R6 ExtensionType 子類別的欄位和/或方法可以檢查其內容。實作也必須檢查 storage_type,以確保它與擴充類型相容。

  • $as_vector(extension_array):將 ArrayChunkedArray 轉換為 R 向量。當 ExtensionArray 物件上的 as.vector()、包含 ExtensionArrayRecordBatch 轉換為 data.frame(),或 ChunkedArray (例如,Table 中的欄) 轉換為 R 向量時,會呼叫此方法。預設方法會傳回轉換後的儲存陣列。

  • $ToString() 傳回字串表示形式,當列印此類型或此類型的 Array 時,將會列印到主控台。