1、map賦值
示例:
package main //必須有個main包
import "fmt"
func main() {
m1 := map[int]string{1: "mike", 2: "yoyo"}
//賦值,如果已經存在的key值,修改內容
fmt.Println("m1 = ", m1)
m1[1] = "c++"
m1[3] = "go" //追加,map底層自動擴容,和append類似
fmt.Println("m1 = ", m1)
}
執行結果:
m1 = map[2:yoyo 1:mike] m1 = map[1:c++ 2:yoyo 3:go]
2、map遍歷
示例1:
package main //必須有個main包
import "fmt"
func main() {
m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
//第一個返回值為key, 第二個返回值為value, 遍歷結果是無序的
for key, value := range m {
fmt.Printf("%d =======> %s\n", key, value)
}
}
執行結果:
3 =======> go 1 =======> mike 2 =======> yoyo
3、map 判斷一個key值是否存在
示例2:
package main //必須有個main包
import "fmt"
func main() {
m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
//第一個返回值為key, 第二個返回值為value, 遍歷結果是無序的
for key, value := range m {
fmt.Printf("%d =======> %s\n", key, value)
}
//如何判斷一個key值是否存在
//第一個返回值為key所對應的value, 第二個返回值為key是否存在的條件,存在ok為true
//value, ok := m[1] //已經存在的value
value, ok := m[0] //key不存在
if ok == true {
fmt.Println("m[1] = ", value)
} else {
fmt.Println("key不存在")
}
}
執行結果:
1 =======> mike 2 =======> yoyo 3 =======> go key不存在
4、map刪除
示例4:
package main //必須有個main包
import "fmt"
func main() {
m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
fmt.Println("m = ", m)
delete(m, 1) //刪除key為1的內容
fmt.Println("m = ", m)
}
執行結果:
m = map[2:yoyo 3:go 1:mike] m = map[2:yoyo 3:go]
5、map做函數參數
示例5:
package main //必須有個main包
import "fmt"
//{1: "mike", 2: "yoyo", 3: "go"}
func test(m map[int]string) {
delete(m, 1) //刪除1個
func main() {
m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
fmt.Println("m = ", m)
test(m) //在函數內部刪除某個key
fmt.Println("m = ", m)
}
執行結果:
m = map[1:mike 2:yoyo 3:go] m = map[2:yoyo 3:go]
