go語言基礎之map賦值、遍歷、刪除 、做函數參數


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]

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM