BLOB#
BLOBはバイト列を保持する型で、バイナリデータを高速に扱うために一部のAPIが扱います。
BLOBが格納するバイト列は符号なし8bit整数として管理されます。
BLOBの合成#
BLOB_LIKE := NUMBER | BLOB | STREAM<BLOB_LIKE> | ARRAY<BLOB_LIKE>
BLOBの合成は、 BLOB_LIKE から単一のBLOBを生成する際の規則です。
BLOB_LIKE は実際のクラスではなく、BLOBに変換することのできる型を表す便宜上の型です。
BLOB_LIKEが数値の場合、小数点以下の四捨五入と下位8ビット以外のビットの削除が行われた状態で新しいBLOBに追加されます。BLOB_LIKEがBLOBの場合、そのまま新しいBLOBインスタンスにコピーされます。BLOB_LIKEが配列の場合、各要素が再帰的にBLOB_LIKEとして処理されます。BLOB_LIKEがストリームの場合、各要素が再帰的にBLOB_LIKEとして処理されます。
BLOB.of 配列からのBLOBの生成#
BLOB.of(blobLike: BLOB_LIKE): BLOB
blobLike から新しいBLOBを合成します。
$ xa '
BLOB.of(
[1, 0, -1],
[256, 257],
[1.4, 1.6],
)
'
# BLOB.of([1;0;255;0;1;1;2])
長さの取得#
$# 演算子でBLOBのバイト数を取得できます。
詳細は 長さの取得 を参照してください。
配列への変換#
BLOBは blob::toArray() で直接配列に変換できます。
$ xa 'BLOB.of([1, 2, 3])::toArray()'
# [1;2;3]