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的全部内容。