[go] Go 언어에서 임베딩된 메소드
Go 언어는 다른 구조체를 임베딩하여 새로운 타입을 생성하는 기능을 제공합니다. 이렇게 생성된 타입은 임베딩된 구조체의 멤버를 바로 접근할 수 있어서 코드의 재사용성을 높이는데 도움을 줍니다.
임베딩된 구조체의 메소드를 사용하려면 다음과 같이 메소드 호출을 통해 구조체의 필드에 접근할 수 있습니다.
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Printf("I am %s\n", a.Name)
}
type Dog struct {
Animal // Animal 구조체를 임베딩
Breed string
}
func main() {
dog := Dog{
Animal: Animal{Name: "Max"},
Breed: "Labrador",
}
fmt.Println(dog.Name) // Animal 구조체의 필드에 접근
dog.Speak() // Animal 구조체의 메소드 호출
}
위의 예제에서 Animal
구조체를 Dog
구조체에 임베딩하였습니다. 이제 Dog
구조체에서 Animal
의 필드와 메소드를 사용할 수 있습니다. dog.Name
은 Animal
구조체의 Name
필드에 접근하여 값을 출력하고, dog.Speak()
은 Animal
구조체의 Speak()
메소드를 호출하여 “I am Max”를 출력합니다.
Go 언어에서 임베딩된 메소드는 구조체 간의 관계를 표현하는 데 유용하며, 코드를 간결하고 읽기 쉽게 만드는 데 도움이 됩니다.
더 자세한 내용은 공식 Go 문서를 참고하시기 바랍니다.