問題:
將Go 程式編譯到WASM 時,只有導出的函數被保留。如果您需要從 JavaScript 存取特定函數,這可能會出現問題。
問題:
我們如何在將 Go 程式編譯到 WASM 時匯出所有所需的函數?
答案:
使用 TinyGo:
如果您打算專注於 WASM 開發,請考慮使用 TinyGo。 TinyGo 提供了 //export 註解指令,讓您可以指定要匯出哪些函數。
<code class="go">// This function is exported to JavaScript, so can be called using // exports.multiply() in JavaScript. //export multiply func multiply(x, y int) int { return x * y; }</code>
使用標準 Go 編譯器(實驗):
The標準 Go 編譯器正在持續討論複製 TinyGo 的匯出功能。一個可能的解決方案是使用js.Global().Set(...).
範例:
<code class="go">package main import ( "github.com/gopherjs/gopherjs/js" ) func main() { js.Global().Set("MyFunc", MyFunc) } func MyFunc() { fmt.Println("MyFunc called from JavaScript") }</code>
編譯:
使用以下命令將Go 程式編譯為WASM:
<code class="sh">GOOS=js GOARCH=wasm go build -o main.wasm main.go</code>
這應該會匯出MyFunc 函數並使其可供JavaScript 存取。
以上是將Go程式編譯到WASM時如何導出所有需要的函式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!