[go] 구조체(struct)의 메서드(Method) 정의와 호출 방법

Go 언어에서 구조체는 필드의 모음이며, 메서드는 특정 구조체에 대한 함수입니다. 구조체 메서드는 해당 구조체의 인스턴스에 대해 작동하는 함수로, 구조체와 관련된 동작을 수행하는 데 사용됩니다. 이 글에서는 Go 언어에서 구조체 메서드를 정의하고 호출하는 방법에 대해 알아보겠습니다.

구조체 메서드 정의하기

구조체 메서드를 정의하기 위해서는 다음과 같은 형식을 따릅니다:

func (s StructName) MethodName() {
    // 메서드의 동작 내용
}

위의 예시에서 StructName은 해당 메서드를 정의하는 구조체의 이름입니다. MethodName은 메서드의 이름이며, 어떤 구조체에서 메서드를 호출할 때 사용됩니다.

구조체 메서드 호출하기

구조체 메서드를 호출하기 위해서는 다음과 같은 방법을 사용합니다:

instanceVar := StructName{}
instanceVar.MethodName()

위의 예시에서 StructName은 구조체의 이름이며, MethodName은 호출하려는 메서드의 이름입니다. instanceVar는 구조체의 인스턴스 변수로, 이를 통해 메서드를 호출합니다.

예시

package main

import "fmt"

type Rectangle struct {
    width  float64
    height float64
}

func (r Rectangle) Area() float64 {
    return r.width * r.height
}

func main() {
    rect := Rectangle{width: 10, height: 5}
    area := rect.Area()
    fmt.Println("사각형의 넓이:", area)
}

위의 예시에서 Rectangle 구조체는 가로와 세로 길이를 가지고 있습니다. Area 메서드는 구조체의 넓이를 계산하여 반환합니다. main 함수에서는 Rectangle 구조체를 기반으로 인스턴스를 생성하고, Area 메서드를 호출하여 사각형의 넓이를 출력합니다.

이제 Go 언어에서 구조체 메서드를 정의하고 호출하는 방법에 대해 알았습니다. 구조체 메서드는 구조체와 관련된 작업을 캡슐화하여 코드의 가독성과 유지 보수성을 향상시킬 수 있는 강력한 도구입니다.

참고 자료