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):将 Array 或 ChunkedArray 转换为 R 向量。当对 ExtensionArray 对象调用as.vector()时,当包含 ExtensionArray 的 RecordBatch 转换为data.frame()时,或者当 ChunkedArray(例如 Table 中的列)转换为 R 向量时,会调用此方法。默认方法返回转换后的存储数组。$ToString()返回一个字符串表示,当打印此类型或此类型的 Array 时,该字符串将打印到控制台。