상세 컨텐츠

본문 제목

Go 언어에서의 Map

Go lang

by techbard 2022. 3. 15. 20:57

본문

반응형
  • 관용적으로 if 구문에서 할당과 평가를 통해 에러 처리를 수행
package main

import (
	"fmt"
)

func main() {

	m := make(map[string]int)
	m = map[string]int{
		"a": 1,
		"b": 2,
		"c": 3,
		"d": 4,
	}

	key := "d" // key := "x"
	if v, ok := m[key]; ok {
		fmt.Printf("m[%s] value: %d\n", key, v)
	} else {
		fmt.Printf("m[%s] not found.\n", key)
	}

}

// 결과
//
// m[d] value: 4

// m[x] not found.

  • struct is value type
package main

import (
	"fmt"
)

func main() {
	// anonymous struct
	Emp := struct{ name string }{name: "Mike"}
	fmt.Println("Emp:", Emp)

	anotherEmp := Emp
	anotherEmp.name = "Jane"

	// struct is value type
	fmt.Println("Another Emp:", anotherEmp)
	fmt.Println("Emp:", Emp)

	fmt.Println("==========")

	// use of struct adress
	referenceEmp := &Emp
	referenceEmp.name = "Jane"

	fmt.Println("Reference Emp:", referenceEmp)
	fmt.Println("Emp:", Emp)
}

// 결과
//
// Emp: {Mike}
// Another Emp: {Jane}
// Emp: {Mike}
// ==========
// Reference Emp: &{Jane}
// Emp: {Jane}

  • struct embedding
package main

import (
	"fmt"
)

type Employee struct {
	name  string
	empID int
}

type Person struct {
	Employee
	country string
	age     int
}

func main() {
	p := Person{}
	p.name = "Mike"
	p.empID = 1001
	p.country = "USA"
	p.age = 31

	fmt.Println(p.name)
}

// 결과
//
// Mike
반응형

관련글 더보기

댓글 영역