Maison > développement back-end > Golang > le corps du texte

Comment puis-je exporter les noms de fonctions dans des fichiers Go WASM compilés ?

Patricia Arquette
Libérer: 2024-10-31 03:28:02
original
558 Les gens l'ont consulté

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

Exportation des noms de fonctions dans Go WASM

Vous souhaitez exporter les noms de fonctions dans des fichiers Go WASM compilés. Par défaut, ces noms ne sont pas visibles dans le fichier .wasm résultant, ce qui rend difficile leur appel depuis des contextes externes.

Directive //export de TinyGo

TinyGo, un compilateur Go adapté aux environnements embarqués et WASM, fournit une solution à votre problème. Il prend en charge la directive //export, qui préserve les noms de fonctions lors de la compilation. Par exemple :

<code class="go">//export multiply
func multiply(x, y int) int {
    return x * y;
}</code>
Copier après la connexion

Cette directive garantit que la fonction de multiplication reste accessible par son nom dans le fichier WASM compilé.

Solution de compilateur Go standard

Pour le compilateur Go standard, une discussion est en cours sur l'ajout d'une fonctionnalité similaire. Cependant, actuellement, vous pouvez y parvenir en définissant les fonctions exportées sur l'espace de noms global JS à l'aide de js.Global().Set(...).

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
}
Copier après la connexion

Dans cet exemple, la multiplication est exportée vers le JS. portée globale, permettant de l'appeler depuis JavaScript à l'aide de exports.multiply().

Pour créer votre fichier Go WASM, utilisez la commande suivante :

GOOS=js GOARCH=wasm go build -o main.wasm
Copier après la connexion

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!

source:php.cn
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