zoukankan      html  css  js  c++  java
  • 数组和切片

    实际上就是个数组。
    底层是一个数组,切片内有这个数组引用,和切片的信息。
    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)

  • 相关阅读:
    电子公文传输系统-个人贡献
    电子公文传输系统团队项目 冲刺总结
    2020课程设计——个人报告
    2020课程设计——小组报告
    电子公文传输系统团队项目 描述设计
    OpenSSL中的dgst、dh、dhparam、enc命令使用说明
    用OpenSSL搭建的CA配置tomcat,部署https网站
    2020课程设计——第三周进展
    myod-系统调用版本
    20181312 2020-2021-1 《信息安全系统设计与实现(上)》用myod实现Linux下od -tx -tc功能
  • 原文地址:https://www.cnblogs.com/mcmx/p/11380569.html
Copyright © 2011-2022 走看看