オクテット列に対する操作¶
オクテット列に対する操作¶
TJS2 では、オクテット列は擬似的に Octet クラスのオブジェクトということになっていますが、Octet クラスは存在していませんし、実際に Octet クラスのオブジェクトというわけではありません ( ただし オクテット列に対して typeof 演算子を使うと "Octet" を返します )。
しかし オクテット列をオブジェクトと見立てて、いくつかのメソッドやプロパティが使用可能になっています。
オクテット列に関する実装は未完成です。
length¶
length プロパティは、オクテット列の長さを返します。メソッドではなくてプロパティですので注意してください。ただし、このプロパティへの値の代入はできません。
var oct = <% 11 22 33 %>;
var n = oct.length; // n には 3 が代入される
var n = <% 11 22 33 %>.length; // これも同じく 3 が代入される
'数値' プロパティ¶
数値をプロパティとして間接指定すると、その位置にあるオクテットにアクセスできます。
結果はオクテットの数値で表されます。
たとえば、oct がオクテット列を表す式だとすると、oct[0] は先頭のオクテットの値を表す数値になります。
数値がオクテット列よりも長い位置や、負の場合は例外が発生します。
代入式を生成することはできません。
var oct = <% 11 22 33 44 55 %>;
var c = oct[0]; // 0x11 が c に代入される
var c = oct[2]; // 0x22 が c に代入される
oct[3] = 'A'; // 代入式は生成できないのでエラーになる
var c = oct[100]; // 値が範囲外なのでエラーになる