Go 언어 기반 맵

map
map 는 key-value 를 기반 으로 하 는 무질서 한 데이터 구조 로 Go 에서 map 는 참조 형식 으로 초기 화 되 어야 사용 할 수 있 습 니 다.
 
map 정의
map[keyType]valueType

map 형식의 변 수 는 초기 값 이 nil 이 므 로 make()함수 로 메모 리 를 할당 해 야 합 니 다.
make(map[keyType]valueType,[cap])

# cap   ,       ,             

 
map 사용
func main() {
	scoreMap := make(map[string]int, 8)
	scoreMap["  "] = 90
	scoreMap["  "] = 60
	fmt.Println(scoreMap)
	fmt.Println(scoreMap["  "])
	fmt.Println(scoreMap["a"])
}

// map[  :90   :60]
// 60
// 0

창설 및 성명
func main() {
	scoreMap := map[string]int{
		"  ": 40,
		"  ": 60,
	}
	fmt.Println(scoreMap)
}

 
어떤 값 이 존재 하 는 지 판단 하 다
value, ok := map[key]
func main() {
	scoreMap := map[string]int{
		"  ": 40,
		"  ": 60,
	}
	//   key  ok true,v     ;   ok false,v  0
	v, ok := scoreMap["  "]
	if ok {
		fmt.Println(v)
	} else {
		fmt.Println("   ")
	}
}

 
맵 옮 겨 다 니 기
range 옮 겨 다 니 기 map 사용 하기
func main() {
	scoreMap := map[string]int{
		"  ": 40,
		"  ": 60,
	}
	//       Key,for k := range scoreMap
	for k, v := range scoreMap {
		fmt.Println(k, v)
	}
}

 
delect()함수 로 키 쌍 삭제 하기
delete(map, key)

map         map
key          
func main() {
	scoreMap := map[string]int{
		"  ": 40,
		"  ": 60,
	}
	delete(scoreMap, "  ")
	fmt.Println(scoreMap)
}

 
순서대로 지 정 된 순서대로 맵 을 옮 겨 다 니 기
func main() {
	rand.Seed(time.Now().UnixNano())

	var scoreMap = make(map[string]int, 200)

	for i := 0; i < 100; i++ {
		key := fmt.Sprintf("stu%02d", i)
		value := rand.Intn(100)
		scoreMap[key] = value
	}
	//   map  key    
	var keys = make([]string, 0, 200)
	for key := range scoreMap {
		keys = append(keys, key)
	}
	sort.Strings(keys)
	for _, key := range keys {
		fmt.Println(key, scoreMap[key])
	}
}

 
요소 맵 형식의 절편
func main() {
	var mapSlice = make([]map[string]string, 3)
	for index, value := range mapSlice {
		fmt.Printf("index:%d value:%v
", index, value) } fmt.Println("after init") // map mapSlice[0] = make(map[string]string, 10) mapSlice[0]["name"] = " " mapSlice[0]["password"] = "123456" mapSlice[0]["address"] = " " for index, value := range mapSlice { fmt.Printf("index:%d value:%v
", index, value) } }

 
절편 형식의 맵 값
func main() {
	var sliceMap = make(map[string][]string, 3)
	fmt.Println(sliceMap)
	fmt.Println("after init")
	key := "  "
	value, ok := sliceMap[key]
	if !ok {
		value = make([]string, 0, 2)
	}
	value = append(value, "  ", "  ")
	sliceMap[key] = value
	fmt.Println(sliceMap)
}

좋은 웹페이지 즐겨찾기