Go 언어 기반 맵
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)
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails Turbolinks를 페이지 단위로 비활성화하는 방법원래 Turobolinks란? Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고, 이동한 페이지를 Ajax에서 가져옵니다. 그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.