gpt4 book ai didi

webassembly - 如何在 WebAssembly 中创建和引用表?

转载 作者:行者123 更新时间:2023-12-02 17:14:21 30 4
gpt4 key购买 nike

有人可以分享语法来静态创建具有某些元素的表并引用它吗?我找不到这样做的任何 Web 程序集代码。

还有一些细节,比如我可以有多个列,如果索引不在表中会发生什么等会有所帮助吗?

最佳答案

(针对 2022 年的 Wasm 2.0 更新)

在文本格式中,一个table使用其表类型声明,即(初始)大小和元素类型——目前 funcrefexternref 是唯一受支持的类型:

(table $name 100 funcref)

从 Wasm 2.0 开始,一个模块中可以有多个表。

可以通过提供一个或多个事件的 element segments 在模块内初始化表:

(elem (i32.const 0) $f1 $f2 $f3)

其中表达式表示偏移量,后面是模块中定义的函数列表。

从 Wasm 2.0 开始,可以通过 table.gettable.settable.sizetable.grow

在 2.0 之前,使用表的唯一方法是通过 call_indirect说明:

(call_indirect (type $t) (arg1) ... (argn) (index))

您可以在 Wasm 规范测试套件中找到一些简单的示例,例如这里:

表格没有列。至于execution ,越界访问会导致陷阱,访问未初始化的索引或类型不匹配也是如此。

关于webassembly - 如何在 WebAssembly 中创建和引用表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47286798/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com