WebAssembly中`(param i32 i32)`与`(param i32) (param i32)`有什么区别?
WAT两种param参数定义写法的区别
这两种写法没有功能层面的核心差异,编译后生成的WASM二进制完全一致,仅属于语法层面的书写风格差异:
- 合并写法
func (param i32 i32):允许在同一个param声明块内依次定义多个参数,不需要为每个参数单独加param关键字,写法更精简,适合不需要给参数命名、参数较多的场景。 - 拆分写法
func (param i32) (param f32):每个参数单独使用一个param声明块,更适合需要给参数单独命名的场景,比如写成func (param $age i32) (param $score f32),可读性更高,也方便单独给某个参数加注释说明。
补充说明:这两种写法和多值提案没有绑定关系,WASM从最初的标准就支持函数传入多个参数,多值提案扩展的是函数可以返回多个值的能力,不影响参数的定义规则。
内容的提问来源于stack exchange,提问作者Someone
相关产品推荐
相关产品推荐

