首頁  >  文章  >  後端開發  >  Golang函數如何與其他語言互動?

Golang函數如何與其他語言互動?

WBOY
WBOY原創
2024-04-12 09:09:011172瀏覽

Go 允許透過 CGO 和外部呼叫 (FFI) 與其他語言互動。 CGO 用於呼叫 C 程式碼,而 FFI 可用於呼叫 JavaScript、Python 等語言的函數。例如,可以使用 FFI 呼叫 Python 函數 sum_numbers 以便在 JavaScript 中將其與 Go 程式碼一起使用。

Golang函數如何與其他語言互動?

Go 函數如何與其他語言互動?

Go 提供了強大的支持,可讓你使用其他語言編寫的函數,而無需離開 Go 程式碼。以下是如何做到這一點:

使用 CGO

CGO 允許你呼叫 C 程式碼。以下是如何使用它:

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

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

使用 外部呼叫 (FFI)

FFI 允許你呼叫其他語言的函數,例如 JavaScript 和 Python。以下是如何使用FFI 呼叫JavaScript 函數:

package main

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

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

實戰案例:呼叫Python 函數

假設你有以下Python 函數:

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

你可以使用FFI 在Go 中呼叫這個函數:

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

當你執行此程式碼時,它將在JavaScript 中呼叫Python 函數並列印結果。

注意:

使用 FFI 需要準確了解目標語言的 API。還有一些可用於方便 FFI 的第三方函式庫,例如 [github.com/gonum/cgo](https://github.com/gonum/cgo)。

以上是Golang函數如何與其他語言互動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn