zoukankan      html  css  js  c++  java
  • Go语言里的slice

    1.切片是基于数组做的一层封装,灵活能够自动扩容。

    2.切片的初始化方法

     

    ①直接创建

     

    ②基于已有的数组或切片

     

    ③使用make来创建一个切片

     

    第一个5是切片的大小

    第二个5是切片的容量

     

    3.基本操作

    ①获取元素

     

    ②增加元素append

    当达到底层的最大容量,切片会进行扩容,扩容的策略是翻倍扩容。

    下图说明扩容之后,地址也变化了。

     

    4.切片的修改

    和数组(值传递)不一样,切片相当于是一个引用传递。

     

    5.如果计算切片的容量?

    例如:b切片的长度和容量是多少?

     

    答案: 长度为2 容量为7

    详细可以参考下面图,a、b共用底层切片,但是b是从1开始的,长度为3-1 =2,容量为a其他的底层

     

    6.切片后面追加切片

    func AppendSlice(){
    	 slice1 := []int{1,2,3}
    	 slice2 := []int{3,3,6}
    
    	 slice1 = append(slice1,slice2... )
    
    	for _, value := range slice1 {
    		fmt.Println("value的地址",value)
    	}
    
    }
    

    注意一下 append(slice1,slice2... ) 这个...定义就是把slice2展开,放到slice1后面。

     

  • 相关阅读:
    css样式2 布局 定位 层级 显示
    css与样式
    表单属性、键值对
    表单
    列表、表格
    实体、颜色、路径、标签、超链接、图片
    2018/07/05 html基础
    TP 链接数据库与Model模型的创建
    ThinkPHP 模板循环语法
    tp 单字母函数详解(摘自网络)
  • 原文地址:https://www.cnblogs.com/dcz2015/p/10578353.html
Copyright © 2011-2022 走看看