Go의 structs는 필드들로 이루어진 타입을 갖는 컬렉션입니다. 레코드를 구성하기 위해 데이터들을 그룹핑 하는데 유용합니다. |
|
package main
|
|
import "fmt"
|
|
이 |
type person struct {
name string
age int
}
|
func main() {
|
|
새로운 구조체를 생성합니다. |
fmt.Println(person{"Bob", 20})
|
필드명을 사용해 구조체를 초기화 할 수 있습니다. |
fmt.Println(person{name: "Alice", age: 30})
|
생략된 필드는 제로값을 갖게됩니다. |
fmt.Println(person{name: "Fred"})
|
앞에 |
fmt.Println(&person{name: "Ann", age: 40})
|
닷(.)을 사용해 구조체 필드에 접근합니다. |
s := person{name: "Sean", age: 50}
fmt.Println(s.name)
|
구조체 포인터에서도 닷(.)을 사용할 수 있습니다. 이 때 포인터는 자동으로 역참조됩니다. |
sp := &s
fmt.Println(sp.age)
|
구조체는 수정이 가능(mutable)합니다. |
sp.age = 51
fmt.Println(sp.age)
}
|
$ go run structs.go
{Bob 20}
{Alice 30}
{Fred 0}
&{Ann 40}
Sean
50
51
|
다음 예제: 메서드.