抽象只读children只读finished一个布尔值,指示此`Builder`是否已调用`Builder.prototype.finish()`。
只读length已写入`Builder`但尚未刷新的值的数量。
可选 只读null此`Builder`的空值哨兵列表。当其中一个值写入`Builder`(通过`Builder.prototype.set()`或`Builder.prototype.append()`)时,一个1位写入此Builder底层的空BitmapBufferBuilder。
只读stride底层值TypedArray中表示单个逻辑元素的元素数量,由该Builder的`DataType`决定。对于大多数类型,此值为1,但当`DataType`为`Int64`、`Uint64`、`Decimal`、`DateMillisecond`、某些`Interval`、`Time`或`Timestamp`变体、`FixedSizeBinary`和`FixedSizeList`时,此值更大。
只读typeBuilder的`DataType`实例。
已写入值的总长度(字节)。
已预留用于写入新值的总长度(字节)。
已预留用于写入新值的总行数。
静态through静态through
用于从任意JavaScript值构造Arrow向量的类型的抽象基类。
一个`Builder`负责根据每种DataType的Arrow规范,将任意JavaScript值写入ArrayBuffer和/或子构建器,并在必要时创建或调整底层ArrayBuffer的大小。
每个Arrow `DataType`的`Builder`负责转换和追加给定`DataType`的值。高级便利方法`makeBuilder()`会为提供的`DataType`创建特定的`Builder`子类。
一旦创建,`Builder`实例支持在`Builder`末尾追加值,以及随机访问写入特定索引(`Builder.prototype.append(value)`是`builder.set(builder.length, value)`的便利方法)。追加或设置超出`Builder`当前长度的值可能会导致构建器增长其底层缓冲区或子构建器(如果适用)以适应新值。
向`Builder`写入足够多的值后,`Builder.prototype.flush()`会将这些值提交到底层的ArrayBuffers(或子Builder)。内部的Builder状态将被重置,并返回一个`Data`实例。或者,`Builder.prototype.toVector()`会清空`Builder`并返回一个`Vector`实例。
当没有更多值可写入时,使用`Builder.prototype.finish()`来完成`Builder`。这不会重置内部状态,因此如果仍有值需要刷新,则需要最后一次调用`Builder.prototype.flush()`或`toVector()`。
注意:使用`DictionaryBuilder`时需要调用`Builder.prototype.finish()`,因为此时它会刷新已在其内部字典的`Builder`中排队的值,并为`Dictionary` `DataType`创建`dictionaryVector`。
示例
类型参数
T 此`Builder`的`DataType`。
类型参数
TNull 将被视为空值哨兵的值的类型。