Maison >développement back-end >Golang >Comment les fonctions Golang interagissent-elles avec d'autres langages ?

Comment les fonctions Golang interagissent-elles avec d'autres langages ?

WBOY
WBOYoriginal
2024-04-12 09:09:011209parcourir

Go permet l'interaction avec d'autres langages via CGO et appels externes (FFI). CGO est utilisé pour appeler du code C, tandis que FFI peut être utilisé pour appeler des fonctions en JavaScript, Python et d'autres langages. Par exemple, vous pouvez utiliser FFI pour appeler la fonction Python sum_numbers afin de pouvoir l'utiliser avec du code Go en JavaScript.

Comment les fonctions Golang interagissent-elles avec dautres langages ?

Comment les fonctions Go interagissent-elles avec d'autres langages ?

Go fournit un support puissant qui vous permet d'utiliser des fonctions écrites dans d'autres langages sans quitter votre code Go. Voici comment procéder :

Utiliser CGO

CGO vous permet d'appeler le code C. Voici comment l'utiliser :

// #include <stdio.h>
import "C"

func main() {
    C.printf("Hello, world!\n")
}

Utilisation de l'invocation externe (FFI)

FFI vous permet d'appeler des fonctions dans d'autres langages, tels que JavaScript et Python. Voici comment appeler une fonction JavaScript en utilisant FFI :

package main

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

func main() {
    js.Global.Get("document").Get("getElementById").Invoke("myElement")
}

Exemple pratique : Appeler une fonction Python

Supposons que vous ayez la fonction Python suivante :

def sum_numbers(a, b):
    return a + b

Vous pouvez appeler cette fonction en Go en utilisant FFI :

package main

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

func main() {
    pyFunc := js.Global.Get("sum_numbers")
    result := pyFunc.Invoke(js.MakeWrapperType(1), js.MakeWrapperType(2))
    js.Global.Get("console").Call("log", result)
}

Lorsque vous exécutez ce code, il appelle une fonction Python en JavaScript et imprime le résultat.

Remarque :

L'utilisation de FFI nécessite une compréhension précise de l'API du langage cible. Il existe également des bibliothèques tierces disponibles pour faciliter FFI, telles que [github.com/gonum/cgo](https://github.com/gonum/cgo).

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:
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