更新
TypedArray.set
已经掌握了,assemblyscript@nightly
所以你现在可以用通常的方式来做:
var c = new Uint8Array(a.length + b.length);
c.set(a);
c.set(b, a.length);
目前TypedArray.set
尚未实施,但您仍有变体:
版本 1(JavaScript 方式):
var a: Int8Array = ...
var b: Int8Array = ...
var alen = a.length;
var blen = b.length;
var c = new Int8Array(alen + blen);
for (let i = 0; i < alen; i++) {
unchecked(c[i] = a[i]);
}
for (let i = 0; i < blen; i++) {
unchecked(c[i + alen] = b[i]);
}
版本 2(AssemblyScript 方式):
var a: Int8Array = ...
var b: Int8Array = ...
var alen = a.length;
var blen = b.length;
var c = new Int8Array(alen + blen);
var aPtr = a.dataStart;
var bPtr = b.dataStart;
var cPtr = c.dataStart;
memory.copy(cPtr, aPtr, alen);
memory.copy(cPtr + alen, bPtr, blen);