블록에는 다양한 속성이 들어가는데, 관련 속성을 묶어서 관리하기 위해 구조체를 사용
//구조체 정의
type 타입명 struct {
필드명 타입
필드명 타입
}
type Vertex struct {
X int
Y int
}
package main
import "fmt"
func main() {
type Vertex struct {
X int
Y int
}
}
//구조체 변수 초기화
var v0 Vertex
//구조체 필드 초기화
var v1 Vertex = Vertex{1, 2}
var v2 Vertex = Vertex{X: 1, Y: 2}
var v3 Vertex = Vertex{X: 1}
v := Vertex{1, 2}
//구조체 필드 접근
v.Y = 20
fmt.Println(v.X) //1
fmt.Println(v.Y) //20
package main
import "fmt"
func main() {
type Vertex struct {
X int
Y int
}
var v Vertex = Vertex{X: 1}
fmt.println(v)
v.Y = 2
fmt.Println(v)
}
결과값
{1 0} //Y값은 초기화 해주지 않았기 때문에 0 반환
{1 2}
package main
import (
"encoding/json"
"fmt"
)
type Vertex struct {
X int `json: "x"` //json에서 사용할 이름 작성
Y int `json: "y"`
}
func main() {
v := Vertex{1, 2}
data, _ := json.Marshal(v) //json형태로 변환
fmt.Println(string(data))
}
결과값
{"x":1, "y":2}