当前位置:网站首页>Map (set) operation in go language

Map (set) operation in go language

2022-06-23 08:35:00 Unfortunately, no if o

map:

1. Definition

key-value Formal data storage data structure , And JAVA in map It's the same thing .

2.map Getting started

	//map Statement of ( Definition )
	var m map[string]int
	//map The initialization 
	m = make(map[string]int)
	//map Add data to 
	m["age"] = 100
	// Print map data 
	fmt.Printf("%v", m)

Be careful :

1.map Of Statement and map Of initialization Not the same concept . uninitialized Of map yes nil,nil Of map It is not allowed to add values , Otherwise (panic: assignment to entry in nil map) error , But you can get the default value .

    //map Statement of ( Definition ), Not initialized 
	var m map[string]int
	fmt.Printf("%v\n", m["age"]) // Able to print 0
	m["age"] = 100               // Report errors  panic: assignment to entry in nil map
	fmt.Printf("%v\n", m) // Don't execute 

2. So-called nil Can be interpreted as Null pointer , It does not point to any memory address , and make() The method is to map Allocate memory address .

3.make() Can be used to initialize map, It's fine too map Declaration time Direct initialization .

	// Statement + initialization 
	m := map[string]int{"age": 10}
	fmt.Printf("%v\n", m["age"]) //10
	m["sex"] = 0                 // Set up sex=0
	fmt.Printf("%v\n", m)        //map[age:10 sex:0]

3.map Add, delete, change and check operation

	// Statement map
	var m map[string]string
	// initialization map
	m = make(map[string]string)
	
	//map Add data 
	m["name"] = "mongobx"
	m["age"] = "18"
	m["sex"] = "male"
	fmt.Printf("%v\n", m) //map[age:18 name:mongobx sex:male]

	//map Delete data 
	delete(m, "sex")
	fmt.Printf("%v\n", m) //map[age:18 name:mongobx]

	//map Modifying data 
	m["age"] = "22"
	fmt.Printf("%v\n", m) //map[age:22 name:mongobx]

	//map Query data ( Three )
	// Inquire about 1
	name := m["name"]
	fmt.Printf("%v\n", name) //mongobx

	// Inquire about 2
	name, ok := m["name"]           //name There is ok by true, Otherwise false
	fmt.Printf("%v-%v\n", name, ok) //mongobx-tru
	
	// Inquire about 3
	_, ok := m["name"]
	fmt.Printf("%v\n", ok) //true
	

4.map The traversal :

// Statement map
var m map[string]string
// initialization map
m = make(map[string]string)
//map Add data 
m["name"] = "mongobx"
m["age"] = "18"
m["sex"] = "male"
fmt.Printf("%v\n", m)

// Traverse key
for key := range m {
   fmt.Printf("%v\n", key)
}

// Traverse value
for _, value := range m {
   fmt.Printf("%v\n", value)
}

// Traverse key,value
for key, value := range m {
   fmt.Printf("%v-%v\n", key, value)
}
原网站

版权声明
本文为[Unfortunately, no if o]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/01/202201111948195812.html