ホームページ >バックエンド開発 >Golang >コンパイルされた Go WASM ファイル内の関数名をエクスポートするにはどうすればよいですか?

コンパイルされた Go WASM ファイル内の関数名をエクスポートするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-31 03:28:02568ブラウズ

How can I export function names in compiled Go WASM files?

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

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