Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah fungsi Golang berinteraksi dengan bahasa lain?

Bagaimanakah fungsi Golang berinteraksi dengan bahasa lain?

WBOY
Lepaskan: 2024-04-12 09:09:01
asal
1218 orang telah melayarinya

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.

Bagaimanakah fungsi Golang berinteraksi dengan bahasa lain?

Bagaimanakah fungsi Go berinteraksi dengan bahasa lain?

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")
}
Salin selepas log masuk

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")
}
Salin selepas log masuk

Contoh praktikal: Memanggil fungsi Python

Katakan anda mempunyai fungsi Python berikut:

def sum_numbers(a, b):
    return a + b
Salin selepas log masuk

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)
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan