golang 기초 - 구조체

한나리·2023년 6월 27일

Go

목록 보기
8/19
post-thumbnail

구조체

블록에는 다양한 속성이 들어가는데, 관련 속성을 묶어서 관리하기 위해 구조체를 사용

구조체 정의

//구조체 정의

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}

Json 구조체 정의

 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}

profile
내가 떠나기 전까지는 망하지 마라, 블록체인 개발자

0개의 댓글