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 についての正確な知識が必要です。 [github.com/gonum/cgo](https://github.com/gonum/cgo) など、FFI を容易にするために利用できるサードパーティ ライブラリもあります。
以上がGolang 関数は他の言語とどのように対話しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。