問題:
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 サイトの他の関連記事を参照してください。