Golang之路---02 基础语法——字典

这篇具有很好参考价值的文章主要介绍了Golang之路---02 基础语法——字典。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

字典

字典(Map 类型),是由若干个 key:value 这样的键值对映射组合在一起的数据结构。

key 不能是切片,不能是字典,不能是函数。

字典初始化

方式:map[KEY_TYPE]VALUE_TYPE

  //1.
  var map1 map[string]int = map[string]int{"fish":80,"beef":69}
  //2.
  map2 := map[string]int{"egg":2}
  //3.
  map3 := make(map[string]int)
  map3["egg"] = 1
  map3["apple"] = 4

字典的相关操作


func main() {
 //声明一个为orders的字典
 var orders map[string]int

 //未初始化的字典为nil,无法直接进行赋值
 if orders == nil{
   //利用make函数进行初始化
   orders = make(map[string]int)
 }

 //如果已经初始化,则可以直接赋值
 orders["fish"] = 20
 //map[fish:20]
 fmt.Println(orders)

 //添加元素 , 如果key已经存在,则直接更新value
 orders["beef"] = 35
 //读取元素,直接使用 [key] 即可 ,如果 key 不存在,也不报错,会返回其value-type 的零值。
 //0
 fmt.Println(orders["pair"])
 //删除元素 使用 delete 函数,如果 key 不存在,delete 函数会静默处理,不会报错。
 delete(orders,"fish")
 //0
 fmt.Println(orders["fish"])

}

嵌套字典

choice := make(map[string]map[string]string)
   choice["考研"] = make(map[string]string,3)
   choice["考研"]["id"]="1"
   choice["考研"]["why"]="提升学历"
   choice["考研"]["school"]="清华附小"
   //map[考研:map[id:1 school:清华附小 why:提升学历]]
   fmt.Println(choice)

判断key是否存在

当key不存在,会返回value-type的零值 ,所以你不能通过返回的结果是否是零值来判断对应的 key 是否存在,因为 key 对应的 value 值可能恰好就是零值。
其实字典的下标读取可以返回两个值,使用第二个返回值表示对应的 key 是否存在,若存在flag2为true,若不存在,则flag2为false文章来源地址https://www.toymoban.com/news/detail-616443.html

  orders["e"] = 90
  orders["rf"] = 80
  flag1,flag2 := orders["e"]
  //值为90
  if flag2 {
	fmt.Printf("值为%d\n",flag1)
  }else{
	fmt.Printf("值不存在\n")
  }
  //值不存在
  flag3,flag4 := orders["ttt"]
  if flag4{
	fmt.Printf("值为 %d\n",flag3)
  }else{
	fmt.Printf("值不存在\n")
  }

对字典元素进行遍历

func main() {
  
  orders := map[string]int{"beef":78,"pair":12}
  
//1.同时获取key 和 value
for name,price := range orders{
	/*
	key: beef,value: 78
    key: pair,value: 12
	*/
	fmt.Printf("key: %s,value: %d\n",name,price)
}

//2.只获取key
for name := range orders{
	/*
	key: beef
    key: pair
	*/
	fmt.Printf("key: %s\n",name)
}

//3.只获取value,注意这里需要用匿名变量
for _,price := range orders{
	/*
	value: 78
    value: 12
	*/
	fmt.Printf("value: %d\n",price)
}

到了这里,关于Golang之路---02 基础语法——字典的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Golang】go编程语言适合哪些项目开发?

    前言 在当今数字化时代,软件开发已成为各行各业的核心需求之一。 而选择适合的编程语言对于项目的成功开发至关重要。 本文将重点探讨Go编程语言适合哪些项目开发,以帮助读者在选择合适的编程语言时做出明智的决策。 Go 编程语言适合哪些项目开发? Go是由Google开发

    2024年02月04日
    浏览(80)
  • golang 通用的 grpc http 基础开发框架

    golang 通用的 grpc http 基础开发框架 仓库地址: https://github.com/webws/go-moda 仓库一直在更新,欢迎大家吐槽和指点 transport: 集成 http(echo、gin)和 grpc。 tracing: openTelemetry 实现微务链路追踪 pprof: 分析性能 config: 通用的配置文件读取模块,支持 toml、yaml 和 json 格式。 logger: 日志系统

    2024年02月10日
    浏览(39)
  • 【Golang】一文学完 Golang 基本语法

    安装包链接:https://share.weiyun.com/InsZoHHu IDE 下载:https://www.jetbrains.com/go/ 每个可执行代码都必须包含 Package、import 以及 function 这三个要素。 主函数文件: package1 包的文件: 注意:golang是 以首字母大小写 来区分对包外是否可见。 所以 Fun() 函数,Str,想要在 main 文件被访问,

    2024年02月13日
    浏览(45)
  • 开启golang学习之路

    Go 编程语言是一个开源项目,旨在提高程序员的工作效率。 Go 富有表现力、简洁、干净且高效。它的并发机制使编写能够充分利用多核和联网机器的程序变得容易,而其新颖的类型系统可以实现灵活和模块化的程序构建。 Go 可以快速编译为机器代码,同时还具有垃圾收集的

    2024年01月25日
    浏览(49)
  • 【Golang】VsCode下开发Go语言的环境配置(超详细图文详解)

    📓推荐网站(不断完善中):个人博客 📌个人主页:个人主页 👉相关专栏:CSDN专栏、个人专栏 🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚 ​ 话说在前,Go语言的编码方式是 UTF-8 ,理论上你直接使用文本进行编辑也是可以的,当然为了提升我们的开发效率我们还是需

    2024年02月07日
    浏览(85)
  • Golang之路---04 并发编程——WaitGroup

    为了保证 main goroutine 在所有的 goroutine 都执行完毕后再退出,前面使用了 time.Sleep 这种简单的方式。 由于写的 demo 都是比较简单的, sleep 个 1 秒,我们主观上认为是够用的。 但在实际开发中,开发人员是无法预知,所有的 goroutine 需要多长的时间才能执行完毕,sleep 多了,

    2024年02月14日
    浏览(36)
  • Golang之路---03 面向对象——类型断言

    作用 检查 i 是否为 nil 检查 i 存储的值是否为某个类型 使用方式 第一种: 这个表达式可以 断言一个接口对象(i)里不是 nil,并且接口对象(i)存储的值的类型是 T ,如果断言成功,就会返回值给 t,如果断言失败,就会触发 panic。(即nil或者接口对象类型不为T时均会触发

    2024年02月14日
    浏览(41)
  • 100天精通Golang(基础入门篇)——第23天:错误处理的艺术: Go语言实战指南

    🌷🍁 博主猫头虎🐅🐾 带您进入 Golang 语言的新世界✨✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通

    2024年02月07日
    浏览(67)
  • 100天精通Golang(基础入门篇)——第5天: Go语言中的数据类型学习

    🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批

    2024年02月08日
    浏览(47)
  • Golang常用语法糖

    语法糖(Syntactic sugar)的概念是由英国计算机科学家彼得·兰丁提出的,用于表示编程语言中的某种类型的语法,这些语法不会影响功能,但使用起来却很方便。 语法糖,也称糖语法,这些语法不仅不会影响功能, 编译后的结果跟不使用语法糖也一样。 语法糖,有可能让代

    2024年02月04日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包