Wie kann ich Funktionsnamen in kompilierte Go WASM-Dateien exportieren?

Patricia Arquette
Freigeben: 2024-10-31 03:28:02
Original
558 Leute haben es durchsucht

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

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>
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage