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

Bagaimanakah fungsi Golang berinteraksi dengan bahasa lain?

WBOY
WBOYasal
2024-04-12 09:09:011209semak imbas

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")
}

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!

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