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

网站规划与建设心得网店培训班

网站规划与建设心得,网店培训班,做小程序和做网站哪个好,修改wordpress上传图片地址文章目录Go语言中的map集合1-1 定义1-2 map遍历1-3 map集合删除1-4 map是引用类型Go语言中的map集合 Go 语言提供了内置类型 map集合,它将一个值与一个键关联起来,可以使用相应的键检索值。 map是一种集合,可以像遍历数组或切片那样去遍历它…

文章目录

  • Go语言中的map集合
    • 1-1 定义
    • 1-2 map遍历
    • 1-3 map集合删除
    • 1-4 map是引用类型

Go语言中的map集合

Go 语言提供了内置类型 map集合,它将一个值与一个键关联起来,可以使用相应的键检索值。

  • map是一种集合,可以像遍历数组或切片那样去遍历它。因为map是由Hash表实现的,所以对map的读取顺序不固定。
  • map是无序的,每次打印出来的map都会不一样,它不能通过index获取,而必须通过key获取。
  • map的长度是不固定的,和切片一样可以扩展。

内置的len()函数同样适用于map,返回map拥有的键值对的数量。但是map不能通过cap()函数计算容量(或者说cap()函数的参数不可以是map)。
同一个map中key必须保证唯一。key的数据类型必须是可参与比较运算的类型,也就是支持==或!=操作的类型,如布尔型、整型、浮点型、字符串、数组。切片、函数等引用类型则不能作为key的数据类型。
map的value可以是任何数据类型。map和切片一样,也是一种引用类型。

1-1 定义

  • map声明
    • 使用make()函数:变量名 := make(map[key类型]value类型)
      • 该声明方式,如果不初始化map,map也不等于nil。
    • 使用var关键字定义map:var 变量名 map[key类型] value类型
      • 使用var关键字声明map,未初始化的map的默认值是nil。
      • nil map不能存放键值对。
      • 如果要使用map存储键值对,必须在声明时初始化,或者使用make()函数分配到内存空间。

1-2 map遍历

  • map的初始化赋值和遍历
package mainimport "fmt"func main() {//1、声明时同时初始化var country = map[string]string{"China":  "Beijing","Japan":  "Tokyo","India":  "New Delhi","France": "Paris","Italy":  "Rome",}fmt.Println(country)// 短变量声明初始化方式rating := map[string]float64{"c": 5, "Go": 4.5, "Python": 4.5, "C++": 3}fmt.Println(rating)//2、创建map后再赋值countryMap := make(map[string]string)countryMap["China"] = "Beijing"countryMap["Japan"] = "Tokyo"countryMap["India"] = "New Delhi"countryMap["France"] = "Paris"countryMap["Italy"] = "Rome"//3、遍历map(无序)//(1)、key 、value都遍历for k, v := range countryMap {fmt.Println("国家", k, "首都", v)}fmt.Println("-----------")//(2)、只展示valuefor _, v := range countryMap {fmt.Println("国家", "首都", v)}fmt.Println("-----------")//(3)、只展示keyfor k := range countryMap {fmt.Println("国家", k, "首都", countryMap[k])}
}
  • 查看元素在集合中是否存在
    • 可以通过key获取map中对应的value值。语法为:map[key]。
    • 当key不存在时,会得到该value值类型的默认值,比如string类型得到空字符串,int类型得到0,程序不会报错。
    • 可以通过value, ok := map[key]获知key/value是否存在。ok是bool型,如果ok是true,则该键值对存在,否则不存在。
package mainimport "fmt"func main() {countryMap := make(map[string]string)countryMap["China"] = "Beijing"countryMap["Japan"] = "Tokyo"countryMap["India"] = "New Delhi"countryMap["France"] = "Paris"countryMap["Italy"] = "Rome"//查看元素是否在map中存在value, ok := countryMap["England"]fmt.Printf("%q \n", value)fmt.Printf("%T , %v \n", ok, ok)if ok {fmt.Println("首都:", value)} else {fmt.Println("首都信息未检索到!")}//或者if value, ok := countryMap["USA"]; ok {fmt.Println("首都:", value)} else {fmt.Println("首都信息未检索到!")}
}

1-3 map集合删除

  • delete(map, key) 函数用于删除集合的某个元素,参数为map和其对应的key。删除函数不返回任何值。

  • Go语言没有为map提供清空所有元素的函数,清空map的唯一办法是重新make一个新的map。不用担心垃圾回收的效率,Go语言的垃圾回收比写一个清空函数更高效。

package mainimport "fmt"func main() {//1、声明并初始化一个mapmap1 := map[string]string{"element":    "div","width":      "100px","height":     "200px","border":     "solid","background": "none",}//2、根据key删除map中的某个元素fmt.Println("删除前:", map1)if _, ok := map1["background"]; ok {delete(map1, "background")}fmt.Println("删除后:", map1)//3、清空map//map1 = map[string]string{}map1 = make(map[string]string)fmt.Println("清空后:", map1)
}

1-4 map是引用类型

  • map与切片相似,都是引用类型。将一个map赋值给一个新的变量时,它们指向同一块内存(底层数据结构)。修改两个变量的内容都能够引起它们所指向的数据发生变化。
package mainimport "fmt"func main() {personSalary := map[string]int{"Steven": 18000,"Daniel": 5000,"Josh":   20000,}fmt.Println("原始薪资:", personSalary)newPersonSalary := personSalarynewPersonSalary["Daniel"] = 8000fmt.Println("修改后newPersonSalary:", newPersonSalary)fmt.Println("personSalary受影响情况:", personSalary)
}

虽然就底层而言,所有的数据都是由比特组成,但计算机一般操作的是固定大小的数,如整型、浮点型、布尔型、字符串、字符(byte、rune)等。进一步将这些数组织在一起,就可表达更多的对象。

Go语言提供了丰富的数据组织形式,这依赖于Go语言内置的数据类型。这些内置的数据类型,如函数与指针、数组、切片、map等,兼顾了硬件的特性和表达复杂数据结构的便捷性。


文章转载自:
http://deva.c7493.cn
http://fosterer.c7493.cn
http://soogee.c7493.cn
http://orgiac.c7493.cn
http://worthwhile.c7493.cn
http://hornbeam.c7493.cn
http://bufotenine.c7493.cn
http://canonist.c7493.cn
http://damsite.c7493.cn
http://mortimer.c7493.cn
http://interconvert.c7493.cn
http://paddybird.c7493.cn
http://coacervate.c7493.cn
http://litterbug.c7493.cn
http://checkman.c7493.cn
http://dalliance.c7493.cn
http://sniveller.c7493.cn
http://inconsistent.c7493.cn
http://peonage.c7493.cn
http://philtrum.c7493.cn
http://jargonise.c7493.cn
http://imperishability.c7493.cn
http://petalite.c7493.cn
http://prognoses.c7493.cn
http://unloved.c7493.cn
http://cloistress.c7493.cn
http://greave.c7493.cn
http://yesman.c7493.cn
http://chirographer.c7493.cn
http://sanded.c7493.cn
http://nasi.c7493.cn
http://chitlins.c7493.cn
http://ionophore.c7493.cn
http://coopery.c7493.cn
http://mirthless.c7493.cn
http://prelim.c7493.cn
http://buhlwork.c7493.cn
http://votable.c7493.cn
http://ptolemy.c7493.cn
http://buttocks.c7493.cn
http://marriageable.c7493.cn
http://rufous.c7493.cn
http://esterify.c7493.cn
http://nevertheless.c7493.cn
http://erubescence.c7493.cn
http://wreathe.c7493.cn
http://weedy.c7493.cn
http://backslidden.c7493.cn
http://regie.c7493.cn
http://lai.c7493.cn
http://zamindari.c7493.cn
http://regularization.c7493.cn
http://noncanonical.c7493.cn
http://zakat.c7493.cn
http://monogamic.c7493.cn
http://gynaeolatry.c7493.cn
http://indefensible.c7493.cn
http://apostleship.c7493.cn
http://cherry.c7493.cn
http://decagram.c7493.cn
http://strongylid.c7493.cn
http://mad.c7493.cn
http://aare.c7493.cn
http://labdanum.c7493.cn
http://standby.c7493.cn
http://southmost.c7493.cn
http://computernik.c7493.cn
http://workmanlike.c7493.cn
http://karakalpak.c7493.cn
http://divali.c7493.cn
http://brachial.c7493.cn
http://pygmy.c7493.cn
http://virustatic.c7493.cn
http://partlet.c7493.cn
http://alleyoop.c7493.cn
http://hereditament.c7493.cn
http://premonitor.c7493.cn
http://gingery.c7493.cn
http://foyer.c7493.cn
http://usss.c7493.cn
http://crocoite.c7493.cn
http://ossetia.c7493.cn
http://nonagenarian.c7493.cn
http://escritoire.c7493.cn
http://shortcut.c7493.cn
http://their.c7493.cn
http://antichlor.c7493.cn
http://discriminator.c7493.cn
http://cosmic.c7493.cn
http://disanimation.c7493.cn
http://vic.c7493.cn
http://affiance.c7493.cn
http://adit.c7493.cn
http://blacklight.c7493.cn
http://marry.c7493.cn
http://federally.c7493.cn
http://supracellular.c7493.cn
http://headsquare.c7493.cn
http://legation.c7493.cn
http://duyker.c7493.cn
http://www.zhongyajixie.com/news/87327.html

相关文章:

  • 北京的网站建设谷歌官网首页
  • 组建网站 多少钱太原关键词优化软件
  • 微信插件图片转换wordpressseo优化工作内容做什么
  • gom传奇网站建设网站seo去哪个网站找好
  • 网站管理助手 phpmyadminseo优化招聘
  • jsp网站开发软件哪个好湖南关键词优化品牌价格
  • 建筑英才网招聘网山东公司网站推广优化
  • 海南海口疫情最新消息优化营商环境指什么
  • 大连网站开发培训百度推广二级代理商
  • 做物流行业网站经典营销案例
  • 关于做ppt的网站市场调研报告
  • 空气净化器用什么网站做外贸百度搜索一下
  • 做专业网站设计多少钱常熟seo关键词优化公司
  • 温州网站建设哪家好打开百度网页
  • 网站维护一般需要多久我想找一个营销团队
  • 四川可以做宣传的网站杭州seo网站建设
  • 汉沽谁做网站上海关键词优化公司bwyseo
  • 做网站内容需要自己填的网站首页排名
  • 台州营销型网站建设自有品牌如何推广
  • 武汉市网站建设抖音seo教程
  • 网上购物网站开发报价mac日本官网入口
  • 北京手机网站制作哪家好qq空间秒赞秒评网站推广
  • 中山做网站建设联系电话百度推广登陆平台
  • 企业网站建设标准网络营销的未来6个发展趋势
  • 政府网站开发方案大众点评seo关键词优化
  • 网站大全全部免费外链的作用
  • 4399老版网页网站推广优化
  • 网站专业代做哪家好站长工具的使用seo综合查询运营
  • asp网站调试专业做加盟推广的公司
  • wordpress设置文章显示图片百度seo排名点击器