Go WASM での関数名のエクスポート
コンパイルされた Go WASM ファイルで関数名をエクスポートしたいと考えています。デフォルトでは、これらの名前は結果の .wasm ファイルには表示されないため、外部コンテキストから呼び出すことが困難になります。
TinyGo の //export ディレクティブ
TinyGo、組み込みおよび WASM 環境向けに調整された Go コンパイラーが、問題の解決策を提供します。 //export ディレクティブをサポートしており、コンパイル中に関数名を保持します。次に例を示します。
<code class="go">//export multiply func multiply(x, y int) int { return x * y; }</code>
このディレクティブにより、コンパイルされた WASM ファイル内で乗算関数がその名前によって引き続きアクセスできるようになります。
標準 Go コンパイラー ソリューション
標準の Go コンパイラーについては、同様の機能の追加についての議論が進行中です。ただし、現時点では、js.Global().Set(...) を使用して、エクスポートされた関数を JS グローバル名前空間に設定することでこれを実現できます。
import ( "syscall/js" ) func main() { js.Global().Set("multiply", exportedMultiply) } //export multiply func exportedMultiply(this js.Value, args []js.Value) interface{} { if len(args) != 2 { return "Invalid number of arguments" } x, y := int(args[0].Int()), int(args[1].Int()) return x * y }
この例では、乗算が JS にエクスポートされます。グローバル スコープ。exports.multiply() を使用して JavaScript から呼び出すことができます。
Go WASM ファイルをビルドするには、次のコマンドを使用します:
GOOS=js GOARCH=wasm go build -o main.wasm
以上がコンパイルされた Go WASM ファイル内の関数名をエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。