본문 바로가기
Programming

Go 언어에서의 Receiver와 메서드

by BTC_ryul 2023. 9. 30.

Go 언어에서의 Receiver와 메서드

Go 언어는 강력한 프로그래밍 언어로서, 객체지향 프로그래밍의 핵심 개념 중 하나인 메서드와 이를 지원하는 Receiver를 제공합니다. 이 글에서는 Go 언어에서의 Receiver와 메서드에 대해 알아보겠습니다.

Receiver란 무엇인가요?

Go 언어에서의 Receiver는 메서드를 연결하는데 사용되는 특별한 매개변수입니다. 이를 통해 특정 데이터 타입과 메서드를 연결할 수 있으며, 이러한 연결을 통해 해당 데이터 타입에 대한 동작을 정의할 수 있습니다.

Receiver는 크게 두 가지 형태가 있습니다.

1. 값(Value) Receiver

값 Receiver를 사용할 때 메서드가 호출될 때, 데이터 타입의 값에 대한 복사본이 생성되며 메서드는 이 복사본을 조작합니다. 따라서 메서드가 호출되어도 원본 데이터는 변경되지 않습니다.

예제:

type Circle struct {
    Radius float64
}

func (c Circle) Area() float64 {
    return 3.14 * c.Radius * c.Radius
}

2. 포인터(Pointer) Receiver

포인터 Receiver를 사용할 때 메서드가 호출될 때, 데이터 타입의 포인터가 전달되며 메서드는 이 포인터를 통해 원본 데이터를 직접 조작할 수 있습니다. 이렇게 하면 원본 데이터를 변경할 수 있습니다.

예제:

type Circle struct {
    Radius float64
}

func (c *Circle) SetRadius(newRadius float64) {
    c.Radius = newRadius
}

Receiver와 메서드의 활용

Receiver를 사용하여 메서드를 정의함으로써, Go 언어에서는 객체지향 프로그래밍에서 사용되는 메서드 개념을 구현할 수 있습니다. 이를 통해 데이터 타입에 대한 동작을 정의하고 재사용 가능한 코드를 작성할 수 있습니다.

Go 언어의 Receiver와 메서드는 코드의 가독성과 유지보수성을 높이는 데 도움이 되며, 이러한 기능을 활용하여 더 효율적인 프로그래밍을 할 수 있습니다.

댓글