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>
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 }
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
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!