5月
15
2012
分類:
最近更新:
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
- (等等...)