구조체 선언은 type 키워드로 시작한다.
그나저나 {}와 ()의 규칙은 아직도 감이 잘 안오네..
type Vertex struct { X int Y int } func main() { fmt.Println(Vertex{1, 2}) } |
[링크 : https://go-tour-ko.appspot.com/moretypes/2]
구조체는 함수는 아니니까 () 대신 {}로 인자를 넘겨 변수를 생성하는 걸까?
v := Vertex{1, 2} v.X = 4 fmt.Println(v.X) |
[링크 : https://go-tour-ko.appspot.com/moretypes/3]
go도 전역변수를 지원하는 걸까?
c99에서 지원하는 구조체 변수명으로 지정 초기화 하는 기능이 기본으로 들어있는 듯.
type Vertex struct { X, Y int } var ( v1 = Vertex{1, 2} // has type Vertex v2 = Vertex{X: 1} // Y:0 is implicit v3 = Vertex{} // X:0 and Y:0 p = &Vertex{1, 2} // has type *Vertex ) func main() { fmt.Println(v1, p, v2, v3) } |
[링크 : https://go-tour-ko.appspot.com/moretypes/5]
타입선언하면서 바로 변수로 만들기도 가능.
func main() { q := []int{2, 3, 5, 7, 11, 13} fmt.Println(q) r := []bool{true, false, true, true, false, true} fmt.Println(r) s := []struct { i int b bool }{ {2, true}, {3, false}, {5, true}, {7, true}, {11, false}, {13, true}, } fmt.Println(s) } |
'Programming > golang' 카테고리의 다른 글
golang defer와 if (0) | 2022.04.11 |
---|---|
golang a tour of go offline (0) | 2022.04.07 |
golang pointer (0) | 2022.04.07 |
golang switch는 break 가 없다 (fallthough) (0) | 2022.04.07 |
golang for 반복문 (0) | 2022.04.07 |