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

网站建设企业宣传国外游戏网站设计

网站建设企业宣传,国外游戏网站设计,企业公司网站建设公司,做盗版电影网站犯法吗Golang中的map基本介绍基本语法map声明的举例map使用的方式map的增删改查操作map的增加和更新map的删除map的查找map的遍历map切片基本介绍map排序map的使用细节基本介绍 map是key-value数据结构,又称为字段或者关联数组。类似其它编程语言的集合,在编程…

Golang中的map

    • 基本介绍
    • 基本语法
      • map声明的举例
    • map使用的方式
    • map的增删改查操作
      • map的增加和更新
      • map的删除
      • map的查找
    • map的遍历
    • map切片
      • 基本介绍
    • map排序
    • map的使用细节

基本介绍

map是key-value数据结构,又称为字段或者关联数组。类似其它编程语言的集合,在编程中是经常使用到的7

基本语法

var map变量名 map[keytype]valuetype

  • key可以是什么类型:golang中的map的key可以是很多种类型,比如bool,数字,string,指针,channel,还可以是值包含前面几个类型的接口,结构体,数组,通常为int,string。value的类型和key基本一样,通常为数字,string,map,struct。
  • 注意:slice,map还有function不可以,因为这几个没法用 ==来判断

map声明的举例

var a map[string]sting

var a map[string]int

var a map[int]sting

var a map[string]map[sting]string

注意:声明是不会分配内存的,初始化需要make,分配内存后才能赋值和使用。

package main
import ("fmt"
)func main() {//map的声明和注意事项var a map[string]string//在使用map,需要先make,make的作用就给map分配给map分配数据空间a = make(map[string]string)a["no1"] = "kunkun"a["no2"] = "kun"a["no3"] = "heizi"a["no1"] = "kun"fmt.Println(a)
}//map[no1:kun no2:kun no3:heizi]

说明:

  • 1.map在使用前一定要make
  • 2.map的key是不能重复,如果重复了,则以最后这个key-value为准
  • 3.map的value是可以相同的
  • 4.map的key-value是无序的
  • 5.make在映射中的说明:初始分配的创建取决于size,但产生的映射长度为0.size可以省略,这种情况下就会分配一个小的起始大小

map使用的方式

package main
import ("fmt"
)func main() {//第一种方式,先声明再makevar a map[string]string//在使用map,需要先make,make的作用就给map分配给map分配数据空间a = make(map[string]string)a["no1"] = "kunkun"a["no2"] = "kun"a["no3"] = "heizi"a["no1"] = "kun"fmt.Println(a)//第二种方式,声明就直接makecities := make(map[string]string)cities["no1"] = "changshang"cities["no2"] = "beijing"cities["no3"] = "shanghai"fmt.Println(cities)//第三种方式声明直接赋值heroes := map[string]string{"hero1" : "jingze", "hero3" : "wang", "hero2" : "kun", }fmt.Println("heroes=", heroes)
}/*
map[no1:kun no2:kun no3:heizi]
map[no1:changshang no2:beijing no3:shanghai]
heroes= map[hero1:jingze hero2:kun hero3:wang]
*/

map的增删改查操作

map的增加和更新

map[“key”] = value //如果可以还没有,就是增加,如果key存在就是修改

在这里插入图片描述

map的删除

  • delete(map,“key”),delete是一个内置函数,如果key存在,就删除该key-value,如果key不存在,不操作,但是也不会报错
  • 如果我们要删除map所有地key,没有一个专门的方法一次删除,可以遍历一下key,逐个删除
  • 或者map=make(…),make一个新的,让原来的成为垃圾,被gc回收

在这里插入图片描述

map的查找

package main
import ("fmt"
)func main() {cities := make(map[string]string)cities["no1"] = "changshang"cities["no2"] = "beijing"cities["no3"] = "shanghai"val, ok := cities["no1"]if ok{fmt.Println("找到了cities=", val)} else {fmt.Println("没有找到这个可以")}}//找到了cities= changshang

map的遍历

map的遍历使用for-range的结构遍历

package main
import ("fmt"
)func main() {cities := make(map[string]string)cities["no1"] = "changshang"cities["no2"] = "beijing"cities["no3"] = "shanghai"for k, v := range cities{fmt.Printf("k=%v v=%v\n",k,v)}
}/*
k=no1 v=changshang
k=no2 v=beijing
k=no3 v=shanghai
*/

map切片

基本介绍

切片 数据类型如果是map,我们称为slice of map,map切片,这样使用则map个数就可以动态变化了。

package main
import ("fmt"
)func main() {var monsters []map[string]stringmonsters = make([]map[string]string, 2)if monsters[0] == nil{monsters[0] = make(map[string]string,2)monsters[0]["name"] = "kunkun"monsters[0]["age"] = "38"}if monsters[1] == nil{monsters[1] = make(map[string]string,2)monsters[1]["name"] = "kun"monsters[1]["age"] = "18"}//动态的增加monster//先定义一个monster信息newMonster := map[string]string{"name" : "heizi","age" : "45",}monsters = append(monsters, newMonster)fmt.Println(monsters)
}//[map[age:38 name:kunkun] map[age:18 name:kun] map[age:45 name:heizi]]

map排序

  • 1.golang中没有一个专门的方法针对map的key进行排序
  • 2.golang中的map默认时无序的没注意也不是按照添加的顺序存放的,每次遍历得到的输出结果可能不一样
  • 3.golang中的map排序,是先将key进行排序,然后根据key值遍历输出即可
package main
import ("fmt""sort"
)func main() {//map的排序map1 := make(map[int]int, 10)map1[10] = 100map1[1] = 13map1[4] = 56map1[8] = 90fmt.Println(map1)//如果按照map的key的顺序进行排序输出//1.先将map的key放入到切片中//2.对切片排序//3.遍历切片,然后按照key来输出map的值var keys []intfor k, _ := range map1 {keys = append(keys, k)}//排序sort.Ints(keys)fmt.Println(keys)for _, k := range keys{fmt.Printf("map1[%v=%v \n", k, map1[k])}
}/*
map[1:13 4:56 8:90 10:100]
[1 4 8 10]
map1[1=13
map1[4=56
map1[8=90
map1[10=100
*/

map的使用细节

  • 1.map是引用类型,遵守引用类型传递的机制,在一个函数接受map,修改后,会直接修改原来的map
  • 2.map的容量达到后,再想map增加元素,会自动扩容,并不会发生panic,也就是说map能动态的增长键值对
  • 3.map的value也经常使用struct类型,(比前面value是一个map更好)比如value为Student结构体
http://www.yayakq.cn/news/822876/

相关文章:

  • 织梦怎么用模板建站网站建设业务员的话术
  • dede自适应网站注意事项对网站开发课程的建议
  • 科技网站建设分析网站域名是什么
  • 建网站多少钱一平方seo是怎么优化推广的
  • 天津手机模板建站网站流量做那些好
  • 网站可以做多少优化关键词如何查询网站备案时间查询
  • 建设美食网站的威胁软件开发管理工具
  • 专业制作彩铃网站开发 网站 团队
  • 请公司做网站没有做好可以退钱吗建商城站用WordPress
  • 苏州网站推广优化青岛专业网站排名推广
  • dw建设的网站上传扬州建设公司网站
  • 网站建设设计公司哪家好合肥seo软件
  • 政协网站建设要求编程 朋友 做网站
  • 网站设计 中国风网站制作成app
  • wordpress下载整站源码苏州谢谢网络公司
  • 房地产网站制作公司可以做调查的网站
  • asp网站安全吗南溪门户网
  • 寿光专业做网站公司网页设计费计入什么科目
  • 怎么设计公司的网站东莞做商城网站建设
  • 与别人相比自己网站建设优势网站加友情链接的好处
  • 制作网站计划书网站开发官网源码
  • wordpress.org建站营销网站建设的价格
  • 专业网站设计制作优化排名哪里有做php网站免费教程
  • 柳州建设网官方网站互联网行业前景
  • 网站首页排名突然没了重庆建设工程质量协会网站
  • 石家庄快速网站搭建服装网站建设内容
  • 网站建设技术开发北京购物网站建设公司
  • 昭阳区建设局网站黔西南州网站建设
  • 怎么在导航网站上做推广十大互联网培训机构
  • 网站建设公司的专业度该怎么去看江苏机械加工网