Go 允許透過 CGO 和外部呼叫 (FFI) 與其他語言互動。 CGO 用於呼叫 C 程式碼,而 FFI 可用於呼叫 JavaScript、Python 等語言的函數。例如,可以使用 FFI 呼叫 Python 函數 sum_numbers 以便在 JavaScript 中將其與 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中文網其他相關文章!