带有空格的 AssemblyScript 导出名称

Posted

技术标签:

【中文标题】带有空格的 AssemblyScript 导出名称【英文标题】:AssemblyScript export name with space in its label 【发布时间】:2021-03-05 20:01:49 【问题描述】:

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

(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))

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

【问题讨论】:

【参考方案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

【讨论】:

不知道为什么我没有收到此通知!我不知道访客有多么广泛,但我一直知道我需要使用它。谢谢!

以上是关于带有空格的 AssemblyScript 导出名称的主要内容,如果未能解决你的问题,请参考以下文章

带有空格和范围的 MS Access VBA acImport 工作表名称

C++ 中的 DLL 导出调用,带有“::”字符串名称

Bash 递归替换名称上的许多空格

带有空格问题的 Xcode 项目/应用程序名称 - 找不到框架

AssemblyScript:动态本地数组大小

带有空格的Java枚举元素?