go语言容器

  • 数组

声明

var 数组变量名 [元素数量] T

如:var team [3]string

初始化

  1. 在声明时初始化

var team=[3]string{“1”,”2”,”3”}

  1. 可以不写大小

var team=[…]string{“1”,”2”,”3”}

遍历

for k,v:=range team{

 // k是元素下标,v是元素内容

}

二、slice

从数组或slice生成新的slice

格式:目标切片对象[开始位置索引:结束位置索引]

  1. 取出的元素个数=结束-开始;取出的元素不包含结束位置的索引
  2. 切片最后一个元素通过slice[len(slice)]获得
  3. 缺省开始位置时,默认连续区域开头;缺省结束位置默认连续区域末尾
  4. 开始与结束均为0,等效于空切片,用于切片复位

声明切片

var name[]T   //相对于数组声明少了元素数量或者…

使用make构造切片

make([]T,size,cap)//size是元素个数,cap是容量

添加元素

切片名=append(切片名,添加的元素)

复制到另一个切片

实际发生复制的元素个数=copy(目标切片,源切片)

删除元素

 指定删除位置index :=2

 将删除位置之前和之后的元素连接起来:切片名=append(切片名[:index],切片名[index+1:]…)

三、map

创建map

变量名:=make(map[键类型]值类型)

map[键]=值

遍历

for k,v range 变量名{

}

map切片排序

scene:=make(map[string]int)

scene[“rou”]=6

// 声明一个slice保存mao

var sl []string

// 将map数据复制到slice中

for k:=range acene{

sl=append(sl)

}

// 对切片进行排序

sort.String(map切片名)

删除某键值对

delete(map变量名,键名)

清空map

唯一方法:重新make一个新的map,go语言的并行垃圾回收效率很高。

sync.Map

能够在并发环境中使用的map,具有以下特性:

  1. 无需初始化,直接声明即可
  2. 不能使用map的方式进行取值和设置等操作,而是使用sync.Map的方法进行调用。Store表示存储,Load表示获取,Delete表示删除
  3. 使用Range配合一个回调函数进行遍历操作,通过回调函数返回内部遍历出来的值。回调函数的返回值意义:需要继续遍历时返回true,不要时返回false

四、list列表

初始化

  1. 变量名:=list.New()
  2. var 变量名 list.List

插入元素

List变量名.PushBack(元素)

List变量名.PushFront(元素)

List变量名.InsertAfter(元素)

List变量名.InsertBefore(元素)

List变量名. PushBackList(待插入的列表指针)

List变量名. PushFrontList(待插入的列表指针)

遍历

 for i:=xx.Front;i!=nil;i=i.Next{

}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值