Maison > développement back-end > Golang > Comment exporter toutes les fonctions souhaitées lors de la compilation d'un programme Go vers WASM ?

Comment exporter toutes les fonctions souhaitées lors de la compilation d'un programme Go vers WASM ?

Linda Hamilton
Libérer: 2024-10-28 19:08:02
original
628 Les gens l'ont consulté

How to Export All Desired Functions When Compiling a Go Program to WASM?

Exportation de fonctions dans Go WASM

Problème :

Lors de la compilation d'un programme Go vers WASM, seul un sous-ensemble du les fonctions exportées sont conservées. Cela peut être problématique si vous avez besoin d'accéder à des fonctions spécifiques depuis JavaScript.

Question :

Comment exporter toutes les fonctions souhaitées lors de la compilation d'un programme Go vers WASM ?

Réponse :

Utilisation de TinyGo :

Si vous envisagez de vous concentrer sur le développement WASM, envisagez d'utiliser TinyGo. TinyGo fournit une directive de commentaire //export qui vous permet de spécifier quelles fonctions doivent être exportées.

<code class="go">// This function is exported to JavaScript, so can be called using
// exports.multiply() in JavaScript.
//export multiply
func multiply(x, y int) int {
    return x * y;
}</code>
Copier après la connexion

Utilisation du compilateur Go standard (expérimental) :

Le Le compilateur Go standard a une discussion en cours sur la réplication de la fonctionnalité d'exportation de TinyGo. Une solution potentielle consiste à définir des fonctions sur l'espace de noms global JS à l'aide de js.Global().Set(...).

Exemple :

<code class="go">package main

import (
    "github.com/gopherjs/gopherjs/js"
)

func main() {
    js.Global().Set("MyFunc", MyFunc)
}

func MyFunc() {
    fmt.Println("MyFunc called from JavaScript")
}</code>
Copier après la connexion

Compilation :

Compilez le programme Go vers WASM à l'aide de la commande suivante :

<code class="sh">GOOS=js GOARCH=wasm go build -o main.wasm main.go</code>
Copier après la connexion

Cela devrait exporter la fonction MyFunc et la rendre accessible à JavaScript.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal