首頁  >  文章  >  後端開發  >  如何在 Go WASM 中匯出函數名稱?

如何在 Go WASM 中匯出函數名稱?

Barbara Streisand
Barbara Streisand原創
2024-10-28 17:23:30446瀏覽

How to Export Function Names in Go WASM?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn