zoukankan      html  css  js  c++  java
  • 切片

    切片的定义和使用

    //切片的定义 方法1 默认切片为空
    var slice []int
    //定义 方法2 自动推导类型
    slice := []int{}
    //切片的使用   增加
    slice = append(slice,1,2,3)
    //获取切片的长度
    len(slice)
    //遍历切片
    for i:=0;i<len(slice);i++{
    fmt.Println(slice[i])
    }

    切片的初始化和赋值

    //var slice []int  默认切片为空

    //slice[0] = 123 erro 数组为空,赋值 数组越界

    //slice = append(slice, 1, 2, 3)

    //创建切片并制定切片元素的个数
    //make(数据类型,个数)

    slice :=make([]int,5)

    fmt.Println(slice)
    fmt.Println(len(slice))
    slice[1] = 123
    slice[2] = 666
    //append在进行数据追加时 在末尾进行追加
    slice = append(slice,9,10,11,12,13)

    fmt.Println(slice)
    fmt.Println(len(slice))

    切片的长度和容量

    slice:= make([]int,5)

    fmt.Println(len(slice)) //长度为5
    fmt.Println(cap(slice)) //容量为5

    slice = append(slice, 1, 2, 3)
    fmt.Println(len(slice)) //长度为8  
    fmt.Println(cap(slice)) //容量为10 //扩容为 上次的1倍 5*2 = 10

    slice = append(slice, 4, 5, 6)

    fmt.Println(len(slice)) //长度为11
    fmt.Println(cap(slice)) //容量为20
    fmt.Println(slice)

    /* make([]数据类型,长度,容量) */
    slice := make([]int,5,10)

    案例:
    var slice []int
    for i:=0;i<10000;i++{
    //容量每次扩容为上一次的倍数 如果超过1024 变为约等于上一次1/4大小
    slice = append(slice, i)
    if len(slice)==cap(slice){
    fmt.Println(len(slice))
    }
    }

    切片的截取

    slice := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    //切片名本身就是一个地址 指向切片的首地址
    fmt.Printf("%p ", slice)

    /**** 切片的截取 *********/

    1, [起始位置:结束位置]  前闭后开区间 [0:5)
    s := slice[0:5]
    2, [起始位置:]   截取从起始位置开始到切片结束
    s := slice[2:]
    3, [:结束位置]  从下标0开始到结束位置  不包含结束位置
    s := slice[:6]
    4, [:]全部截取
    s := slice[:]
    5, [起始位置:结束位置:最大值容量]
    s := slice[2:5:6]  //6-2=容量   ===>最大值容量 - 起始位置

    /**** 切片的拷贝 *********/

    s := make([]int, 10)
    //copy(目标切片,源切片)
    copy(s, slice)

    1,值传递 形参不能修改实参的值</br> 2,地址传递 形参可以修改实参的值</br>

  • 相关阅读:
    spring学习笔记---数据库事务并发与锁详解
    VIM
    Linux命令总结(转)
    js实现配置菜品规格时,向后台传一个json格式字符串
    js 子窗口调用父框框方法
    springMVC 的拦截器理解
    java 使用poi 导入Excel 数据到数据库
    导入jeesite 项目
    JS动态添加删除html
    在Linux CentOS 下安装JDK 1.8
  • 原文地址:https://www.cnblogs.com/muxinanan/p/14502051.html
Copyright © 2011-2022 走看看