[go] Go 언어에서의 구조체(struct)의 개념

Go 언어는 C언어의 간결성과 동시에 객체지향 언어의 특성을 가지고 있는 언어입니다. 구조체(struct)는 Go 언어에서 데이터를 구조화하여 표현하는 수단 중 하나로, 여러 개의 필드(field)로 이루어진 데이터 타입을 정의할 수 있습니다. 이번 글에서는 Go 언어에서의 구조체의 개념과 사용법에 대해 알아보겠습니다.

구조체 정의하기

구조체는 type 키워드와 함께 사용하여 정의할 수 있습니다. 아래는 Person이라는 구조체를 정의하는 예시입니다.

type Person struct {
    name string
    age int
}

위의 예시에서 Person은 구조체의 이름입니다. 구조체의 내부에는 필드들을 정의할 수 있습니다. 위의 예시에서는 nameage라는 두 개의 필드를 가지고 있습니다. 각 필드는 자신의 타입을 가지며, 필드와 타입 사이에는 공백으로 구분됩니다.

구조체 인스턴스 생성하기

구조체를 정의한 후에는 해당 구조체의 인스턴스를 생성할 수 있습니다. 아래는 Person 구조체의 인스턴스를 생성하는 예시입니다.

var p Person
p.name = "John"
p.age = 30

위의 예시에서 Person 타입의 변수 p를 선언하고, nameage 필드에 값을 할당한 후 사용할 수 있습니다. 필드는 점(.) 연산자를 사용하여 접근할 수 있습니다.

구조체를 인자로 사용하기

구조체는 함수나 메서드의 매개변수로도 사용할 수 있습니다. 아래는 Person 구조체를 사용하는 GetInfo라는 함수의 예시입니다.

func GetInfo(p Person) string {
    return "Name: " + p.name + ", Age: " + strconv.Itoa(p.age)
}

func main() {
    p := Person{name: "John", age: 30}
    fmt.Println(GetInfo(p)) // 출력: Name: John, Age: 30
}

위의 예시에서는 GetInfo 함수가 Person 구조체를 인자로 받아 해당 인스턴스의 필드 값을 이용하여 정보를 반환하는 역할을 합니다. main 함수에서는 Person 구조체의 인스턴스를 생성하고, GetInfo 함수를 호출하여 정보를 출력합니다.

마무리

Go 언어에서는 구조체를 사용하여 데이터를 구조화하고 객체를 표현할 수 있습니다. 구조체의 필드를 이용하여 데이터를 조작하고 함수의 인자로 전달하여 활용할 수 있는 장점이 있습니다. 구조체를 적절히 활용하면 코드를 더 간결하고 유지보수하기 쉽게 작성할 수 있습니다.

더 자세한 내용은 Go 언어의 공식 문서를 참고하시기 바랍니다.

이상으로 Go 언어에서 구조체의 개념과 사용법에 대해 알아보았습니다. 감사합니다!