0

我需要导出一个指向类似函数的标签

(func $can_sayhello (export "can sayhello") (type $t3)

我能得到的最接近的是:

 (export "can_sayhello" (func $assembly/index/can_sayhello))

使用这个 AssemblyScript

@external("can sayhello")
export declare function can_sayhello(): void;

我真正想做的是更改此功能的标签


function sayhello() : void {
}
//output in wat
(export "sayhello" (func $assembly/index/sayhello))

成为

 (export "can sayhello" (func $assembly/index/sayhello))

我是汇编脚本的新手,我真的无法弄清楚,如果您有任何问题,请告诉我。

4

1 回答 1

1

任何语言都有带空格的函数名是很不寻常的,但这是可能的!

我写了一个简单的转换通道,它允许你有任何字符串来命名导出。

它在这里https://github.com/willemneal/visitor-as/blob/master/src/examples/exportAs.ts

您需要添加visitor-as为项目的依赖项,然后在您的asconfig.json或 cli 中添加exportAs转换器。

例如

@exportAs("can sayhello")
export function main(): u32 {
  return 42;
}

然后像这样编译

asc assembly/index.ts --transform visitor-as/dist/examples/exportAs
于 2021-01-08T19:45:06.707 回答