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

如何在WebAssembly中创建和引用表?,webassembly,Webassembly,有人能分享一下创建一个静态包含某些元素的表并引用它的语法吗?我找不到任何这样做的web程序集代码 还有一些细节,如我可以有多列,如果索引不在表中,会发生什么情况等。这会很有帮助。在文本格式中,a是用其表类型声明的,即,(初始)大小和元素类型——当前anyfunc是唯一受支持的类型: (table $name 100 anyfunc) 可在模块内通过提供一个或多个: 其中表达式表示偏移量,后跟模块中定义的函数列表 使用此类表格的唯一方法是通过以下说明: (call_indirect (type

有人能分享一下创建一个静态包含某些元素的表并引用它的语法吗?我找不到任何这样做的web程序集代码

还有一些细节,如我可以有多列,如果索引不在表中,会发生什么情况等。这会很有帮助。

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

(table $name 100 anyfunc)
可在模块内通过提供一个或多个:

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

使用此类表格的唯一方法是通过以下说明:

(call_indirect (type $t) (arg1) ... (argn) (index))
您可以在Wasm规范测试套件中找到一些简单的示例,例如:

一个表没有列(尽管将来Wasm可能允许多个表)。至于,越界访问会导致陷阱,访问未初始化的索引或类型不匹配也会导致陷阱。

在文本格式中,使用表类型(即,(初始)大小和元素类型)声明a——当前唯一支持的类型是
anyfunc

(table $name 100 anyfunc)
可在模块内通过提供一个或多个:

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

使用此类表格的唯一方法是通过以下说明:

(call_indirect (type $t) (arg1) ... (argn) (index))
您可以在Wasm规范测试套件中找到一些简单的示例,例如:


一个表没有列(尽管将来Wasm可能允许多个表)。至于,越界访问会导致陷阱,访问未初始化的索引或类型不匹配也会导致陷阱。

问题不清楚您想要什么样的表。它是恒定数据还是动态数据?另外,您对webassembly源代码使用哪种语言?看起来您正在对数据库表进行映像,但对wasm来说,这种方式不起作用。@nzeemin我不太清楚您所说的源语言是什么意思。我正在编写web程序集s-exp。表中有常量数据。我不会在运行时修改它。我只想在运行时根据索引进行引用。从问题中不清楚您想要什么类型的表。它是恒定数据还是动态数据?另外,您对webassembly源代码使用哪种语言?看起来您正在对数据库表进行映像,但对wasm来说,这种方式不起作用。@nzeemin我不太清楚您所说的源语言是什么意思。我正在编写web程序集s-exp。表中有常量数据。我不会在运行时修改它。我只想在运行时基于索引引用。