[go] Go 언어에서 리시버 정의
Go 언어는 리시버(receiver)라는 개념을 통해 메소드(method)를 정의할 수 있습니다. 리시버는 특정 타입에 메소드를 연결하는 역할을 합니다. 이를 통해 해당 타입의 값을 조작하거나 조작하는 동작을 수행할 수 있습니다.
리시버를 정의하는 방법은 다음과 같습니다:
type 타입이름 struct {
// 필드 정의
}
func (r 리시버타입) 메소드이름(파라미터...) 반환타입 {
// 메소드 구현
}
위의 코드에서 리시버타입
은 메소드를 연결할 타입을 나타내며, 메소드이름
은 정의할 메소드의 이름입니다. 파라미터
는 메소드에 전달할 인자를 정의하며, 반환타입
은 메소드의 반환값의 타입을 나타냅니다.
예를 들어, Person
이라는 타입에 SayHello
라는 메소드를 정의해보겠습니다:
type Person struct {
name string
age int
}
func (p Person) SayHello() {
fmt.Printf("안녕하세요, 저는 %s입니다.\n", p.name)
}
위의 코드에서 Person
타입에 SayHello
메소드를 정의했습니다. 이 메소드는 Person
타입의 인스턴스에 적용되어 해당 인스턴스의 name
필드 값을 출력하는 역할을 합니다.
리시버를 사용하면 타입과 관련된 동작을 메소드로 구조화할 수 있어 코드를 보다 직관적이고 모듈화된 형태로 작성할 수 있습니다.
더 자세한 정보는 Go 공식 문서를 참고하시기 바랍니다. Go 웹사이트 에서 Go 언어에 대한 자세한 정보를 확인할 수 있습니다.