Funktionsnamen in Go WASM exportieren
Sie möchten Funktionsnamen in kompilierte Go WASM-Dateien exportieren. Standardmäßig sind diese Namen in der resultierenden .wasm-Datei nicht sichtbar, was es schwierig macht, sie aus externen Kontexten aufzurufen.
TinyGos //export-Direktive
TinyGo, Ein Go-Compiler, der auf eingebettete und WASM-Umgebungen zugeschnitten ist, bietet eine Lösung für Ihr Problem. Es unterstützt die Direktive //export, die Funktionsnamen während der Kompilierung beibehält. Zum Beispiel:
<code class="go">//export multiply func multiply(x, y int) int { return x * y; }</code>
Diese Direktive stellt sicher, dass die Multiplikationsfunktion über ihren Namen in der kompilierten WASM-Datei zugänglich bleibt.
Standard Go Compiler Solution
Für den Standard-Go-Compiler wird derzeit darüber diskutiert, eine ähnliche Funktion hinzuzufügen. Derzeit können Sie dies jedoch erreichen, indem Sie exportierte Funktionen mithilfe von js.Global().Set(...) auf den globalen JS-Namespace festlegen.
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 }
In diesem Beispiel wird Multiplikation in den JS exportiert globaler Gültigkeitsbereich, sodass er mit exports.multiply() aus JavaScript aufgerufen werden kann.
Um Ihre Go WASM-Datei zu erstellen, verwenden Sie den folgenden Befehl:
GOOS=js GOARCH=wasm go build -o main.wasm
Das obige ist der detaillierte Inhalt vonWie kann ich Funktionsnamen in kompilierte Go WASM-Dateien exportieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!