最近更新: 2012-05-15

gjs - byteArray

在 ECMAScript 規範中,string 資料型別基本是 utf-8 編碼的字元集合,一個字元的資料大小不一定是一個 byte 。用於處理 bytes 資料並不是那麼恰當。 gjs/gnome-shell 另外提供了 byteArray 資料型別,以便更精準地處理位元組資料集合。雖然它不常用。

#!/usr/bin/gjs
// example of byteArray

var a1 = imports.byteArray.fromArray([1,2,3]);

print(a1.length); // 3
print(a1[0]); // 1

for (var i = 0; i < a1.length; ++i)
    print(a1[i]);


var a2 = imports.byteArray.fromString('hello');

print(a2.length); // 5
print(a2[0]); // 104 (ascii 'h')

print(a2.toString()); // hello
for (var i = 0; i < a2.length; ++i)
    print(a2[i]);

try {
    a2.every(function(v, i, o){
        print(v);
    });
}
catch (e) {
    print(e);
}

byteArray 有下列內容:

  • fromArray(ar) factory - 以 array 產生 byteArray 的工廠方法。
  • fromString(str) factory - 以 string 產生 byteArray 的工廠方法。
  • index access operator - 索引存取操作。
  • length property - 陣列長度。
  • toString method。

byteArray 沒有下列陣列方法:

  • push
  • pop
  • shift
  • join
  • slice
  • indexOf
  • every
  • forEach
  • (等等...)
樂多舊網址: http://blog.roodo.com/rocksaying/archives/19465972.html