[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 언어에 대한 자세한 정보를 확인할 수 있습니다.