zoukankan      html  css  js  c++  java
  • Go语言学习笔记十一: 切片(slice)

    Go语言学习笔记十一: 切片(slice)

    切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用。不像java语言写起来就比较繁琐。不过我觉得未来java语法也会支持的。

    定义切片

    切片可以使用make函数来定义,也可以像变量声明一样创建个未指定大小的切片。

    var x []int = make([]int, 3);
    y := make([]int, 3);
    z := []int {1, 2, 3};
    

    make有三个参数,第一个是类型(数组类型,所以带方括号),第二个是长度len,第三个是容量cap。长度好理解,就是值的多少。而容量就不好理解了,容量是为了自动扩容次数减少而设计的,为了减少扩容的次数,你可以上来就设置大些。

    切片操作

    s := arr[:]
    s := arr[1:2]
    s := arr[1:]
    s := arr[:2]
    

    len() 和 cap() 函数

    这个两个函数为了得到切片的len和cap的。

    空(nil)切片

    一个切片在未初始化之前默认为 nil,长度为 0。

    append() 和 copy() 函数

    append是往原有切片中增加元素。而copy是复制原有切片,如果不复制,那么修改新的切片内容,原有对应的元素也会被修改。

    var x []int
    
    x = append(x, 1);
    x = append(x, 2, 3, 4);
    
    y := make([]int, len(x), cap(x) * 2)
    
    copy(y, x);
    
  • 相关阅读:
    十分钟上手-搭建vue开发环境(新手教程)
    二叉树基本操作C代码
    javaScript改变HTML
    javaScript查找HTML元素
    javaScript示例
    javaScript语法基础
    jsp useBean
    +Java中的native关键字浅析(Java+Native+Interface)++
    在myeclipse中拷贝一个工程,修改部署的名字
    解压版mysql安装
  • 原文地址:https://www.cnblogs.com/zhangqunshi/p/8497216.html
Copyright © 2011-2022 走看看