跳到内容

ExtensionType 类

方法

ExtensionType 类继承自 DataType,但也定义了特定于扩展类型的额外方法

  • $storage_type(): 返回用于存储值的底层 DataType

  • $storage_id(): 返回与 $storage_type() 对应的 Type 标识符。

  • $extension_name(): 返回扩展名。

  • $extension_metadata(): 以 raw() 向量的形式返回扩展元数据的序列化版本。

  • $extension_metadata_utf8(): 以 UTF-8 编码字符串的形式返回扩展元数据的序列化版本。

  • $WrapArray(array): 将存储 Array 包装到具有此扩展类型的 ExtensionArray 中。

此外,子类可以覆盖以下方法来自定义扩展类的行为。

  • $deserialize_instance(): 当初始化一个新的 ExtensionType 时调用此方法,负责解析和验证序列化的 extension_metadata (一个 raw() 向量),以便 R6 ExtensionType 子类的字段和/或方法可以检查其内容。 实现还必须检查 storage_type,以确保它与扩展类型兼容。

  • $as_vector(extension_array): 将 ArrayChunkedArray 转换为 R 向量。 当包含 ExtensionArrayRecordBatch 转换为 data.frame(),或者当 ChunkedArray (例如,Table 中的一列) 转换为 R 向量时,as.vector()ExtensionArray 对象上调用此方法。 默认方法返回转换后的存储数组。

  • $ToString() 返回一个字符串表示形式,当打印此类型或此类型的 Array 时,该字符串将打印到控制台。