동적 길이를 지니는 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 } |
[링크 : https://cpro95.tistory.com/155]