Go의 메서드 오버로딩 및 임베디드 유형 액세스
Go에서 메서드 오버로딩을 사용하면 이름은 같지만 다른 여러 메서드를 정의할 수 있습니다. 매개변수 또는 반환 유형. Go 구조체에 다른 구조체가 포함된 유형으로 포함되어 있으면 포함된 유형의 메서드에 액세스해야 하는 문제가 발생합니다.
내장 유형 메서드에 액세스
액세스하려면 포함된 유형의 메소드:
예
고려하세요. 다음 코드:
package main import "fmt" type Human struct { name string age int phone string } type Employee struct { Human company string } func (h *Human) SayHi() { fmt.Printf("Hi, I am %s you can call me on %s\n", h.name, h.phone) } func (e *Employee) SayHi() { fmt.Printf("Hi, I am %s, I work at %s. Call me on %s\n", e.name, e.company, e.phone) } func main() { sam := Employee{Human{"Sam", 45, "111-888-XXXX"}, "Golang Inc"} sam.SayHi() // calls Employee.SayHi sam.Human.SayHi() // calls Human.SayHi }
여기서 예:
메서드 오버로딩 및 임베디드 유형
내장 유형의 메소드가 오버로드되면 하위 구조체가 모든 오버로드에 액세스할 수 있습니다. . 예:
package main import "fmt" type A struct { SayHi func(string) } type B struct { A } func main() { a := B{} a.SayHi = func(s string) { fmt.Println("Hello", s) } a.SayHi("World") // prints "Hello World" }
이 예에서:
위 내용은 메소드 오버로딩이 사용될 때 Go에서 임베디드 유형의 메소드에 어떻게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!