Go에서는 CGO 및 외부 호출(FFI)을 통해 다른 언어와 상호 작용할 수 있습니다. CGO는 C 코드를 호출하는 데 사용되는 반면 FFI는 JavaScript, Python 및 기타 언어에서 함수를 호출하는 데 사용됩니다. 예를 들어, FFI를 사용하여 JavaScript의 Go 코드와 함께 사용할 수 있도록 Python 함수 sum_numbers를 호출할 수 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!