동적 길이를 지니는 map은 없나?
package main import ( "fmt" "github.com/mitchellh/mapstructure" ) type MyStruct struct { Name string `mapstructure:"name"` Age int64 `mapstructure:"age"` } func main() { myData := make(map[string]interface{}) myData["Name"] = "Wookiist" myData["Age"] = int64(27) result := &MyStruct{} if err := mapstructure.Decode(myData, &result); err != nil { fmt.Println(err) } fmt.Println(result) } |
[링크 : https://wookiist.dev/107]
걍 추가하면 되는 듯?
package main import "fmt" func main() { // employee 라는 map 타입의 자료가 있습니다. var employee = map[string]int{ "Mark": 10, "Sandy": 20, "Rocky": 30, "Rajiv": 40, "Kate": 50, } // employee map 타입의 자료를 iterate하는 방법은 // for range 문구를 사용하는 겁니다. // key, element 를 지정하면 해당 key와 value를 // 각각 key, element라는 변수로 액세스할 수 있습니다. for key, element := range employee { fmt.Println("Key:", key, "=>", "Element:", element) } // employee map 타입에 자료를 추가해 봅시다. employee["Lunar"] = 60 employee["Mars"] = 70 // employee map 타입의 자료중 기존 자료 업데이트하기 employee["Mark"] = 15 // 수정 된 후 출력하기 fmt.Println("after modified") for key, element := range employee { fmt.Println("Key:", key, "=>", "Element:", element) } // Map data 삭제하기 - delete 함수 이용 delete(employee,"Mark") // 수정 된 후 출력하기 fmt.Println("after modified") for key, element := range employee { fmt.Println("Key:", key, "=>", "Element:", element) } // 빈 Map 타입 생성 employeeList := make(map[string]int) // Map 자료의 갯수는 len함수로 쉽게 구할 수 있습니다. fmt.Println(len(employee)) // 2 fmt.Println(len(employeeList)) // 0 } |
'Programming > golang' 카테고리의 다른 글
golang websocket binary (0) | 2023.03.28 |
---|---|
golang 크로스 컴파일 GOARM GOARCH (0) | 2023.02.03 |
golang reflect (0) | 2023.01.03 |
golang unsafe (0) | 2023.01.03 |
golang 웹 pprof (0) | 2023.01.03 |