我的理解map就是Python中的字典。
转载请注明出处:http://www.cnblogs.com/SSSR/p/6351816.html
参考链接:http://studygolang.com/articles/3637

map.go
package learningmap
import "fmt"
type personInfo struct {
ID string
Name string
Address string
}
func LearningMap() {
//var numbers map[string]int
var myMap map[string]personInfo
rating := map[string]float32{"C": 5, "Go": 4.5, "Python": 4.5, "C++": 2}
myMap = map[string]personInfo{"1234": personInfo{"1", "Jack", "Room 101,..."}}
fmt.Println(rating["C"])
fmt.Println(myMap["1234"])
fmt.Println("ID:", myMap["1234"].ID)
for key, value := range rating {
fmt.Println("Key:", key, "Value:", value)
}
}
func LearningMap1() {
type personInfo struct {
ID string
Name string
Address string
}
/*
//声明一个map变量numbers,键名为string,值为int
var numbers map[string] int
//给map变量创建值,同时指定最多可以存储3个int值
numbers = make(map[string] int, 3)
//map元素赋值
numbers["one"] = 1
numbers["two"] = 2
numbers["three"] = 3
*/
//上面方式的简写方法
numbers := map[string] int{
"one": 1,
"two": 2,
"three": 3,
}
var myMap map[string] personInfo
myMap = make(map[string] personInfo)
myMap["persion1"] = personInfo{"1", "Amiee", "Street 101"}
myMap["persion2"] = personInfo{"2", "Beva", "Street 102"}
myMap["persion3"] = personInfo{"3", "Cencey", "Street 103"}
/*
// 上面方式的简写方法
myMap := map[string] persionInfo{
"persion1": personInfo{"1", "Amiee", "Street 101"},
"persion2": personInfo{"2", "Beva", "Street 102"},
"persion3": personInfo{"3", "Cencey", "Street 103"},
}
*/
//map元素打印
fmt.Printf("%v
", numbers)
fmt.Println(numbers)
fmt.Println(numbers["two"])
fmt.Println(myMap)
fmt.Println(myMap["persion1"])
//map元素查找
p1, ok := myMap["persion1"]
if ok{
fmt.Println("Found persion1, name", p1.Name, ", info", p1 )
}else{
fmt.Println("Not Found persion1")
}
//map元素修改
//map是一种引用类型,如果两个map同时指向一个底层,那么一个改变,另一个也相应的改变。
numbersTest := numbers
numbersTest["one"] = 11
fmt.Println(numbers)
//map元素删除
delete(numbers, "one")
fmt.Println(numbers)
}
/*
输出结果如下
[root@localhost mygo]# go run test.go
map[one:1 two:2 three:3]
map[one:1 two:2 three:3]
2
map[persion1:{1 Amiee Street 101} persion2:{2 Beva Street 102} persion3:{3 Cencey Street 103}]
{1 Amiee Street 101}
Found persion1, name Amiee , info {1 Amiee Street 101}
map[one:11 two:2 three:3]
map[two:2 three:3]
}
*/
map_test.go
package learningmap
import "fmt"
import "testing"
var print = fmt.Println
func TestLearningMap(t *testing.T) {
LearningMap()
print("这是一个测试!")
}
func TestLearningMap1(t *testing.T) {
LearningMap1()
print("这是一个测试!")
}