オクテット列に対する操作

 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]; // 値が範囲外なのでエラーになる