您的位置:首页 > 编程语言 > Go语言

golang 入门_GoLang地图入门:教程

2020-07-14 06:24 274 查看

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 = k
    i++
  }
  sort.Strings(mk)
  fmt.Println("How Difficult is", mk)
}

现在,元素将按顺序打印。

How Difficult is [C++ Go Java Python Scala]

[i] 取回价值

这是获取地图值的方法。

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中

翻译自: https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Get-started-with-GoLang-maps-A-tutorial

golang 入门

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: