ホームページ  >  記事  >  バックエンド開発  >  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 コンパイラはコンパイル プロセス中に関数名をエクスポートしません。

関数名のエクスポート可能性を実現するには、次の 2 つのオプションがあります:

1。 WASM 指向の組み込み Go コンパイラーである TinyGo

TinyGo を使用すると、//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 中国語 Web サイトの他の関連記事を参照してください。

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