Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah fungsi Golang berinteraksi dengan bahasa lain?
Go membenarkan interaksi dengan bahasa lain melalui CGO dan panggilan luar (FFI). CGO digunakan untuk memanggil kod C, manakala FFI boleh digunakan untuk memanggil fungsi dalam JavaScript, Python dan bahasa lain. Sebagai contoh, anda boleh menggunakan FFI untuk memanggil fungsi Python sum_numbers supaya anda boleh menggunakannya dengan kod Go dalam JavaScript.
Go menyediakan sokongan kuat yang membolehkan anda menggunakan fungsi yang ditulis dalam bahasa lain tanpa meninggalkan kod Go anda. Begini cara untuk melakukannya:
Menggunakan CGO
CGO membolehkan anda memanggil kod C. Begini cara untuk menggunakannya:
// #include <stdio.h> import "C" func main() { C.printf("Hello, world!\n") }
Menggunakan Invocation Luaran (FFI)
FFI membolehkan anda memanggil fungsi dalam bahasa lain, seperti JavaScript dan Python. Begini cara untuk memanggil fungsi JavaScript menggunakan FFI:
package main import ( "github.com/gopherjs/gopherjs/js" ) func main() { js.Global.Get("document").Get("getElementById").Invoke("myElement") }
Contoh praktikal: Memanggil fungsi Python
Katakan anda mempunyai fungsi Python berikut:
def sum_numbers(a, b): return a + b
Anda boleh memanggil fungsi ini dalam Go using 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) }
Apabila anda jalankan kod ini, ia memanggil fungsi Python dalam JavaScript dan mencetak hasilnya.
Nota:
Menggunakan FFI memerlukan pengetahuan yang tepat tentang API bahasa sasaran. Terdapat juga perpustakaan pihak ketiga yang tersedia untuk memudahkan FFI, seperti [github.com/gonum/cgo](https://github.com/gonum/cgo).
Atas ialah kandungan terperinci Bagaimanakah fungsi Golang berinteraksi dengan bahasa lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!