Go에서 함수 호출을 인수로 전달
Go에서 go 및 defer와 같은 키워드에는 함수 호출이 매개변수로 필요합니다. 이러한 사용법에 대해 지정된 유형은 없지만 다양한 기술을 활용하여 비슷한 결과를 얻을 수 있습니다.
함수 변수/값 사용
정의할 수 있습니다. 함수 유형의 변수를 만들고 함수에 할당합니다. 이를 통해 함수가 변수에 저장된 것처럼 호출할 수 있습니다.
<code class="go">func myFunc() { fmt.Println("hi") } func main() { var f func() f = myFunc f() // This calls myFunc }</code>
매개변수로 함수 호출 래핑
인수를 사용하여 함수 호출을 수용하려면 함수 내에서 호출을 래핑하고 래핑된 함수를 전달할 수 있습니다.
<code class="go">func launch(f func()) { fmt.Println("Before launch") go func() { defer fmt.Println("After completion") f() }() }</code>
다음과 같이 사용할 수 있습니다.
<code class="go">func main() { launch(func() { fmt.Println("Hello, playground") }) time.Sleep(time.Second) }</code>
자동 매개변수 저장을 위한 도우미 함수
특정 함수 유형의 경우 자동 매개변수 저장을 제공하는 도우미 함수를 만들 수 있습니다. 이러한 도우미 함수는 원래 함수와 동일한 시그니처를 가지며 매개변수 없는 함수를 반환합니다.
동적 함수에 리플렉션 사용
리플렉션을 사용하면 별도의 요청 없이 동적으로 함수를 호출할 수 있습니다. 수동 사본. 그러나 다른 방법보다 속도가 느리고 유형 안전성이 낮습니다.
메서드 값
수신자 개체의 복사본을 저장하는 메서드 값은 예외입니다. 매개변수 저장이 가능합니다. 메소드를 직접 호출하지 않고도 메소드 값을 사용할 수 있습니다.
Go에는 함수 호출을 위한 특정 유형이 없지만 이러한 기술은 인수 사용 또는 자동 매개변수 저장을 포함하여 함수 호출을 인수로 전달하는 다양한 방법을 제공합니다.
위 내용은 Go에서 함수 호출을 인수로 어떻게 전달할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!