数组[切片]、字典、函数

目录:

1:数组【切片】

2:字典

3:函数

 

一、数组【切片】

数组和切片的区别就是一个是固定长度一个不固定。

定长数组-不定长数组

  • 定长,不能追加元素
  • 不定长,可以跟Python一样append追加元素
  • 定长你定义变量的时候前面写数字、不定长 前面不写数字呗!!
  • 切片的底层也是数组 可以动态改变长度

使用*函数append进行追加的

names := []string{"cfp","lixiao","haha"}

names = append(names,"大神")

//意思是:使用append函数 找到names 然后加一个元素,放到堆上,然后再赋值给names变量。记住append(names,"大神") 单单这样,names是不会改变的。

二、字典(map)

字典和Python的字典一样的,也是key/value。存储的key是经过哈希运算的。

 

2.1:声明方式

数组[切片]、字典、函数

 

 

 

注意点1!使用字典一定要先分配空间

注意点2!在map中不存在访问越界的问题,它认为所有的key都是有效的。不像Python如果你dict["不存在的key"]就会报错!,所以访问一个不存在的key不会崩溃,它会返回这个类型的零值。

所以无法通过获取value来判断一个key是否存在,因此我们需要一个能够校验key是否存在的方式!

以下方式:

value,ok := idnames[1]

如何id=1是存在的,value就是该key的值,此时的ok是true。反之如何id=1不存在,value就是零值,ok是false。

注意点3:并发任务处理的时候,需要对map进行上锁,要不然你有人读有人写,go程序会崩溃的。

 

使用*函数删除

delete(指定那个map,指定要删除哪个key)

 

 

 

 

 

 

 

 

 

 

二、切片

 

三、字典

 

上一篇:【JavaWeb】多表查询、事务、DCL


下一篇:集合的交集和差集优化(代码层面)