当前位置: 首页 > news >正文

专注做一家男人最爱的网站成都sem优化

专注做一家男人最爱的网站,成都sem优化,全世界疫情排名一览表最新消息,企业网站内容更新怎么操作编程笔记 Golang基础 024 映射 一、映射二、映射的定义与初始化三、基本操作四、综合示例程序 Go语言中的映射(map)是一种关联数组或哈希表数据结构,它存储键值对,其中每个键都是唯一的。在Go中,你可以使用 map[keyTy…

编程笔记 Golang基础 024 映射

  • 一、映射
  • 二、映射的定义与初始化
  • 三、基本操作
  • 四、综合示例程序

Go语言中的映射(map)是一种关联数组或哈希表数据结构,它存储键值对,其中每个键都是唯一的。在Go中,你可以使用 map[keyType]valueType来声明一个映射。

一、映射

在Go语言中,映射(map)是一种内置的数据结构,它提供了一种关联键值对的方式,允许通过唯一的键(key)来存储和检索对应的值(value)。映射中的键是唯一的,并且用于快速查找相关联的值。这种数据结构常被称为关联数组、哈希表或字典,在其他编程语言中也有类似的概念。

Go语言中的映射定义语法如下:

map[keyType]ValueType

例如,创建一个存储字符串到整数的映射:

var m map[string]int

使用映射时需要注意以下几点:

  • 映射在使用前必须初始化(可以通过 make 函数或者直接声明并初始化),否则会引发运行时错误。
  • 映射的键必须是可比较类型,也就是说,它们需要支持相等性判断操作(== 和 !=)。
  • 映射是无序的,因此不能保证迭代顺序的一致性。
  • Go 语言中的映射实现了高效的查找、插入和删除操作,这些操作的时间复杂度通常接近 O(1)。

示例代码:

// 初始化一个映射
m := make(map[string]int)// 插入键值对
m["apple"] = 1
m["banana"] = 2// 根据键查找值
value, ok := m["apple"]
if ok {fmt.Println("The value for key 'apple' is", value)
} else {fmt.Println("Key 'apple' not found")
}// 删除键值对
delete(m, "banana")

在这个例子中,“ok”是一个布尔值,表示查找是否成功找到指定的键。如果键存在,则“ok”为true,同时返回相应的值;如果键不存在,则“ok”为false,返回的值为零值。

二、映射的定义与初始化

// 定义并初始化一个字符串到整数的映射
var numbers map[string]int = map[string]int{"one": 1, "two": 2, "three": 3}// 或者直接初始化而不声明变量类型
numbers := map[string]int{"one": 1, "two": 2, "three": 3}// 使用make函数创建一个新的映射(推荐方式)
numbers := make(map[string]int)
numbers["one"] = 1
numbers["two"] = 2
numbers["three"] = 3

三、基本操作

  • 插入和访问元素:
numbers["four"] = 4 // 插入新的键值对
value, exists := numbers["one"] // 访问元素,exists为bool型,表示键是否存在
if exists {fmt.Println("The value of 'one' is", value)
}
  • 删除元素:
delete(numbers, "two") // 删除键为"two"的键值对
  • 遍历映射:
for key, value := range numbers {fmt.Printf("Key: %s, Value: %d\n", key, value)
}

四、综合示例程序

下面是一个综合应用的示例程序,该程序创建了一个学生姓名到分数的映射,并实现了添加、查询、删除和遍历操作:

package mainimport ("fmt"
)func main() {// 初始化一个映射scores := make(map[string]int)// 添加一些学生的分数scores["Alice"] = 95scores["Bob"] = 85scores["Charlie"] = 90// 查询并打印某个学生的分数if score, ok := scores["Alice"]; ok {fmt.Printf("Alice's score is %d.\n", score)} else {fmt.Println("Alice is not in the records.")}// 更新一个学生的分数scores["Bob"] = 90// 删除一个学生记录delete(scores, "Charlie")// 遍历并打印所有学生的分数fmt.Println("All students' scores:")for name, score := range scores {fmt.Printf("%s: %d\n", name, score)}
}

在这个示例中,我们首先创建了一个名为scores的映射,用于存储学生姓名及其对应的分数。然后演示了如何向映射中插入数据、通过键查询值、更新现有键的值以及删除键值对。最后,通过range关键字遍历映射并打印所有的学生分数。

http://www.shuangfujiaoyu.com/news/35425.html

相关文章:

  • 企业免费网站建设郑州seo公司
  • 网站建设的整体流程网页设计与制作用什么软件
  • 最新免费下载ppt模板网站东莞网站关键词优化公司
  • 山东省建设官方网站绍兴百度seo排名
  • 招聘网站开发学徒色盲测试图第六版
  • 在建设银行网站申请完信用卡吗app推广之家
  • 成都微信开发小程序东莞seo推广
  • 手机怎样做网站图解各大免费推广网站
  • 郑州专业网站推广公司seo人员的职责
  • 国外网站打开很慢dns友情链接地址
  • 基于h5的个人网站建设上海好的网络推广公司
  • 辽宁省建设工程交易网湖南正规关键词优化
  • 母婴网站模板dede最近七天的新闻大事
  • 网站建设狼雨今天新闻
  • 在线做爰 视频网站设计网页的软件
  • 南宁培训网站建设广西网络推广公司
  • 聚美优品一个专注于做特价的网站怎么开网站平台
  • 同ip网站做301网站怎么收录到百度
  • 南昌做网站优化哪家好百度seo报价方法
  • 学校网站的建设目标是什么意思最好用的搜索引擎
  • 交互设计大学世界排名企业seo职位
  • 国内知名设计网站百度经验登录入口
  • 做兼职推荐网站网站开发公司
  • 重庆网络公司网站建设百度贴吧官网
  • 快速建设网站精准引流的网络推广
  • 国外做ppt的网站有哪些网站优化要多少钱
  • 免费发布信息网有哪些网站常州seo关键词排名
  • 网站建设与管理提纲seo的名词解释
  • 从来没做过网站如何做淘宝搜索词排名查询
  • 做网站代理网络推广优化网站