在Go WASM 匯出中公開函式名稱
將Go 程式碼編譯到WASM 時,您可能會遇到想要保留函式名稱的情況在產生的.wasm 檔案中。預設情況下,標準 Go 編譯器在編譯過程中不會匯出函數名稱。
要實現函數名稱可導出性,您有兩個選擇:
1。使用 TinyGo
TinyGo,一個嵌入式且面向 WASM 的 Go 編譯器,透過 //export 或 //go:export 註解指令提供對匯出函數的支援。這是一個範例:
<code class="Go">//export multiply func multiply(x, y int) int { return x * y; }</code>
使用 TinyGo 進行編譯時(例如,tinygo build -o wasm.wasm -target wasm ./main.go),乘法函數將在產生的 WASM 檔案中公開。
2。使用標準 Go 編譯器(實驗性)
標準 Go 編譯器目前正在致力於引入類似於 TinyGo 的 //export 指令的功能。不過,該功能仍在開發中。或者,您可以使用 js.Global().Set(...) 函數將 Go 函數設定為 JS 全域命名空間的屬性。
範例:
<code class="Go">import ( "github.com/gopherjs/gopherjs/js" ) func main() { js.Global().Set("multiply", multiply) } func multiply(x, y int) int { return x * y; }</code>
這種方法允許您在全域 JavaScript 命名空間中公開乘法函數,從而可以在 WASM 程式碼中存取它。
以上是如何在 Go WASM 中匯出函數名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!