码迷,mamicode.com
首页 > 编程语言 > 详细

数组和切片

时间:2019-08-20 00:46:54      阅读:26      评论:0      收藏:0      [点我收藏+]

标签:append   code   buffers   原来   对比   参数   copy   存储   img   

实际上就是个数组。
底层是一个数组,切片内有这个数组引用,和切片的信息。
var arrAge = [5]int{18, 20, 15, 22, 16}
var arrLazy = [...]int{5, 6, 7, 8, 22}//...可以忽略
var arrKeyValue = [5]string{3: "Chris", 4: "Ron"}
切片;技术图片

 

x、y是切片
改变x、y就是改变数组,向x、y添加数据也是改变数组。

make创建一个切片;
make([]int,len,cap),长度为len,底层数据的容量为cap

new、make在切片上的区别,
new分配数组的内存,返回指向数组的指针。
make,创建一个切片,切片内存储数组引用。

bytes包,
str1 := "1"
str2 := "5"
strbuffer := bytes.NewBufferString(str1)
strbuffer.Write([]byte(str1))
strbuffer.Write([]byte(str2))
fmt.Println(strbuffer.String())
结果为115
在原来str1的基础上添加的str1和str2
这种方式比其它的都快,因为其它的得拷贝。


切片的复制与追加
copy(des,res)//复制
append(slie , num,num1,num2)//元素(在append的第二个参数是个变长参数)
nums := []int{1,2,3,4,5}
append(slie, nums...)//列表传递,实参为变长参数


字符串生成字节切片
c := []byte(s)
b = append(b,s...)
获取字符串的某一部分
substr := str[start:end]

字符串是不可改变的,要想改变,首先得变为字节数组(rune数组也可以)。

字节数组对比函数
Compare


将切片 b 的元素追加到切片 a 之后 a = append(a,b...)
复制切片 a 的元素到新的切片 b 上
b = make([]T, len(a))
copy(b, a)
删除位于索引 i 的元素a = append(a[:i],a[i+1:])
切除切片 a 中从索引 i 至 j 位置的元素a = append(a[:i],a[j:])
为切片 a 扩展 j 个元素长度a = append(a,make([]T,j))
在索引 i 的位置插入元素x a = append(a[:i],append([]T{x},a[i:]...)...)
在索引 i 的位置插入长度为 j 的新切片 a = append(a[:i],append(make([]T,j),a[i:]...)...)
在索引 i 的位置插入切片 b 的所有元素a = append(a[:i],append(b,a[i:]..)...)
取出位于切片 a 最末尾的元素 x ,a = a[len(a)-1],a[:len(a)-1]
将元素 x 追加到切片 a a = append(a,x)

数组和切片

标签:append   code   buffers   原来   对比   参数   copy   存储   img   

原文地址:https://www.cnblogs.com/mcmx/p/11380569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!