golang 入门
使用GoLang编程的重要部分是使用地图。 在此GoLang地图教程中,我们将演示地图的价值,并向您展示如何将其集成到程序中。
什么是GoLang地图?
映射具有键和值。 该值可以是任何值,例如另一个映射。 例如,这是一个字符串映射,键的类型为int, 值为value 。 您可以使用make命令实例化地图。
people := make(map[int]string)
people[1] = "Walker"
这是一个完整的例子。 在这种情况下,我们将分两步声明然后实例化GoLang映射。 然后,我们使用GoLang范围运算符遍历每个键并按索引检索值。 然后我们将其打印出来。
package main
import "fmt"
func main() { var pLangMap map[string]string
pLangMap = make(map[string]string)
pLangMap["Go"] = "Easy"
pLangMap["Python"] = "Easy"
pLangMap["Scala"] = "Difficult"
pLangMap["Java"] = "Moderate Difficult"
pLangMap["C++"] = "Difficult"
for lang := range pLangMap {
fmt.Println("How Difficult is", lang, pLangMap[lang])
}
}
这是输出。 请注意,按键的打印顺序不正确。 这是因为Golang是多线程且异步的 。
How Difficult is Scala Difficult
How Difficult is Java Moderate Difficult
How Difficult is C++ Difficult
How Difficult is Go Easy
How Difficult is Python Easy
排序GoLang地图
要对地图项进行排序,我们不能简单地使用sort.Strings,因为键不是字符串。
sort.Strings(pLangMap)
cannot use pLangMap (type map[string]string) as type []string in argument to sort.Strings
因此,让我们创建一个新的映射,其键类型为字符串[] string的数组,并具有任意值:我们使用len(map),即映射中元素的数量。 然后,将值插入键,并使用sort.Strings对键进行排序。
func main() { var pLangMap map[string]string
pLangMap = make(map[string]string)
pLangMap["Go"] = "Easy"
pLangMap["Python"] = "Easy"
pLangMap["Scala"] = "Difficult"
pLangMap["Java"] = "Moderate Difficult"
pLangMap["C++"] = "Difficult"
mk := make([]string, len(pLangMap))
i := 0
for k, _ := range pLangMap {
mk[i] = k
i++
}
sort.Strings(mk)
fmt.Println("How Difficult is", mk)
}
现在,元素将按顺序打印。
How Difficult is [C++ Go Java Python Scala]
取回价值
这是获取地图值的方法。
pLangMap["Go"] = "Easy"
x := pLangMap["Go"]
fmt.Println("How Difficult is", x)
测试钥匙
要测试键,请使用下划线(_)检索一个值,而不使用该值。 如果我们在其中放置某个占位符(例如v),那么Go会抱怨我们声明了一个值,但没有使用它。 如果密钥不存在,则布尔值ok将等于false。
_, ok := pLangMap["Got"]
if ok == false {
fmt.Println("Got not found")
}
结构图
在这里,我们创建了一个学生类型结构的映射,然后打印每个学生的姓名:
package main
import "fmt"
type student struct { name string
class string
grades string
}
func main() {
var students map[int]student
students = make(map[int]student)
students[1] = student{"Walker", "calculus", "A"}
for k, v := range students {
fmt.Println("key=",k, " name=" , v.name)
}
}
输出:
key= 1 name= Walker
如您所见,GoLang映射非常易于使用,并且它的简单性遍及整个语言,这就是GoLang成为越来越流行的Web编程语言的原因 。
如果您对此GoLang地图教程感兴趣,可以将下面提供的代码粘贴到GoLang Playground中 。
golang 入门