Go의 메서드 식
Go의 메서드 식을 사용하면 사용자 정의 개체를 첫 번째 인수로 사용하여 메서드를 호출할 수 있습니다. 이는 특정 작업을 함수에 전달해야 할 때 유용할 수 있습니다.
코드 조각 이해
다음 Go 코드를 고려하세요.
func main() { dog := Dog{} b := (*Dog).Bark // method expression b(&dog, 5) } type Dog struct {} func (d *Dog) Bark(n int) { for i := 0; i < n; i++ { fmt.Println("Bark") } }
이 예에서는 메소드 표현식을 사용하여 변수 b에 함수를 할당합니다. 메소드 표현식(*Dog).Bark는 Dog 유형의 Bark 메소드를 포인터 수신자(*Dog)와 연결합니다.
b가 호출되면 Bark 메소드는 dog 객체를 첫 번째 인수로 사용하여 호출됩니다. 두 번째 인수는 5입니다. 이 메서드는 "Bark"를 콘솔에 5번 인쇄합니다.
메서드 표현식의 장점
사용 예
메서드 표현식은 다양한 상황에서 사용할 수 있습니다. 예를 들어, 메소드 표현식과 객체를 취한 다음 메소드에 따라 작업을 수행하는 도우미 함수를 정의할 수 있습니다.
func DoAction(f func(*Dog, int), d *Dog, n int) { f(d, n) } ... func main() { var b func(*Dog, int) if (shouldBark) { b = (*Dog).Bark } else { b = (*Dog).Sit } d := Dog{} DoAction(b, &d, 3) }
위 내용은 메소드 표현식은 어떻게 Go에서 메소드 전달을 인수로 활성화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!