首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AssemblyScript:动态本地数组大小

AssemblyScript:动态本地数组大小
EN

Stack Overflow用户
提问于 2021-01-11 13:24:39
回答 1查看 296关注 0票数 0

试图创建一个大小为从JS导入的变量的数组似乎不起作用。例如:

AssemblyScript:

代码语言:javascript
复制
export declare arrSize: u32

const arr = new Uint32Array(arrSize)

export function init (): void {
  unchecked(testArr[0]) = 1
  store<u32>(0, unchecked(testArr[0]))
}

联署材料:

代码语言:javascript
复制
const memory = new WebAssembly.Memory({ initial: 1 })
WebAssembly.instantiateStreaming(fetch('module.wasm'), {
  env: { memory },
  index: { arrSize: 2 }
}).then(module => {
  const { init } = module.instance.exports
  init()
  const arr = new Uint32Array(memory.buffer, 0, 2)
  console.log(arr)
})

然而,如果我在const arr = new Uint32Array(2)文件中更改了AssemblyScript,它就能工作。

是否有一种方法可以在WebAssembly模块中动态调整本地数组的大小?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-13 19:02:26

这样做是可行的:

代码语言:javascript
复制
export declare const count: i32;

const arr = new Array<i32>(count);
export function getCount(): i32 {
    return arr.length;
}

WebAssembly.instantiate的imports对象中,您应该拥有:

代码语言:javascript
复制
{
    index: {
        count: 22
    }
}

如果您的汇编脚本文件名为index.ts

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65667702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档