ホームページ  >  記事  >  バックエンド開発  >  Go プログラムを WASM にコンパイルするときに、必要な関数をすべてエクスポートするにはどうすればよいですか?

Go プログラムを WASM にコンパイルするときに、必要な関数をすべてエクスポートするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-28 19:08:02455ブラウズ

How to Export All Desired Functions When Compiling a Go Program to WASM?

Go WASM での関数のエクスポート

問題:

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 コンパイラーの使用 (実験的):

標準の Go コンパイラでは、TinyGo のエクスポート機能の複製について継続的な議論が行われています。考えられる解決策の 1 つは、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。