golang中的map数据类型是一种字典类型,能够快速的实现key-value的查询。

类似于,php语言的array,python语言的dict,以及Java语言的hashMap

1、Go语言中map的基本语法

fruitsNameMap := make(map[string]string)
numsMap := make(map[string]int)
>> fruitsNameMap["apple"] = "苹果"
>> numsMap["students"] = 2000

2、如何遍历map中的数据

for key, value := range fruitsNameMap {
    fmt.Println(key)
    fmt.Println(value)
}
>> for ... range xxx的方式,完成对map的key和value的遍历输出

3、如果你想得到map中所有的key,写到一个数组中

var keyArray []string

for key := range fruitsNameMap {
    keyArray = append(keyArray, key)
}
>> 以上将fruitsNameMap中的key全都append到keyArray这个数组中

4、删除map中的一个元素

>> delete(fruitsNameMap ["apple"])
这样fruitsNameMap中的fruitsNameMap["apple"]将被delete

5、高级一些的用法

map[string]interface{}
package main

import "fmt"

type Service interface{
	SayHello()
}

type Student struct{}
func (s Student) SayHello() {
	fmt.Println("Hello!")
}

type Employee struct{}
func (s Employee) SayHello() {
	fmt.Println("Hello2!")
}

func main() {
	interfaceMap := make(map[string]Service)
	interfaceMap["SERVICE-STUDENT"] = Student{}
	interfaceMap["SERVICE-EMPLOYEE"] = Employee{}

	interfaceMap["SERVICE-EMPLOYEE"].SayHello() //输出Hello2!

        for key, service := range interfaceMap {
	    fmt.Println(key) //输出key
	    service.SayHello() //输出每个对象各自实现的接口sayHello
        }
}
Hello2!
SERVICE-STUDENT
Hello!
SERVICE-EMPLOYEE
Hello2!

Done,以上就是本期golang之map的全部内容。