• go语言切片


    go语言切片

    package main
    
    import "fmt"
    
    func main() {
        //切片定义的第一种方式,由数组切出来
        //var a [8]int=[8]int{1,2,3,4,5,6,7,8}
        ////只是对数组的引用
        //var b []int=a[2:6]
        //fmt.Println(b)
        //a[2]=30
        //fmt.Println(b)
        //b[1]=40
        //fmt.Println(b)
        //fmt.Println(a)
        ////底层数组的修改会影响切片
        ////切片的修改也会影响底层数组
        //a[1]=20
        //fmt.Println(b)
        //更多用法,没有步长
        //var a [8]int=[8]int{1,2,3,4,5,6,7,8}
        //b:=a[:4]
        //fmt.Println(b)
        //第二种方式,直接定义
        //切片空值是?nil类型
        //var a []int
        //if a==nil{
        //    fmt.Println("我是空的")
        //}
        //a[0]=10
        //fmt.Println(a)
        //定义并初始化,第一个数字是切片的长度,第二个数字是底层数组长度,也就是切片的容量
        //var a []int=make([]int,3)
        //fmt.Println(a)
        //切片的长度和容量(len     cap:容量)
        //var a [8]int=[8]int{1,2,3,4,5,6,7,8}
        //var b []int=a[2:6]
        //fmt.Println(len(b))
        //fmt.Println(cap(b))
        //var a []int=make([]int,3,4)
        //fmt.Println(a)
        //fmt.Println(len(a))
        //fmt.Println(cap(a))
    
        //切片追加值
        //var a [8]int=[8]int{1,2,3,4,5,6,7,8}
        //var b []int=a[2:6]
        //fmt.Println(len(b))
        //fmt.Println(cap(b))
        ////内置函数append
        //b=append(b,555)
        //b=append(b,666)
        //fmt.Println(b)
        //fmt.Println(len(b))
        //fmt.Println(cap(b))
        //b[0]=999
        //fmt.Println(a)
        //b=append(b,777)
        //fmt.Println(b)
        //fmt.Println(len(b))
        //fmt.Println(cap(b))
        //b[0]=999
        //fmt.Println(b)
        //fmt.Println(a)
        //var b =make([]int,3,4)
        //fmt.Println(b)
        //b=append(b,4)
        //fmt.Println(b)
        //fmt.Println(len(b))
        //fmt.Println(cap(b))
        //b=append(b,5)
        //fmt.Println(len(b))
        //fmt.Println(cap(b))
        //切片的修改
        //var b =make([]int,3,4)
        //b[0]=999
        //fmt.Println(b)
        //var b =make([]int,4,4)
        //fmt.Println(len(b))
        //fmt.Println(cap(b))
        //切片的函数传递
        //var b =make([]int,3,4)
        //test(b)
        //fmt.Println(b)
        //切片的数据结构表示
        //type slice struct {
        //    Length        int
        //    Capacity      int
        //    ZerothElement *byte
        //}
        //多维切片
        //var a [][]string=make([][]string,2,3)
        //fmt.Println(a[0])
        //a[0]=make([]string,2,3)
        //if a[0]==nil{
        //    fmt.Println("xxxx")
        //}
        //切片初始化的方法
        //var a []int=[]int{1,2,3}
        //fmt.Println(a)
        //fmt.Println(len(a))
        //fmt.Println(cap(a))
        //多维切片初始化
        //var a [][]string=[][]string{{"1","2"},{"3","4"}}
        //fmt.Println(a)
        //fmt.Println(len(a))
        //fmt.Println(cap(a))
        //a[0][1]="999"
        //fmt.Println(a)
        //a[1][0]="999"
        //var a []int=[]int{1,2}
        //fmt.Println(a)
        //a=append(a,3)
        //fmt.Println(len(a))
        //fmt.Println(cap(a))
        //a[2]=99
        //a[3]=888
        //fmt.Println(a)
        //copy函数
        var a =make([]int,3,10000)
        a[1]=99
        a[2]=888
        fmt.Println(a)
    
        //var b =make([]int,4,4)
        var b =make([]int,2,4)
        fmt.Println(b)
        copy(b,a)
        fmt.Println(b)
    
    
    
    
    }
    
    func test(b []int)  {
        b[0]=999
        fmt.Println(b)
    }
  • 相关阅读:
    【转】ArcEngine 打开AutoCAD文件的几种方法与读取CAD数据的方法
    汉字转拼音(VB版)
    ArcIMS9.2 + Web ADF for the Microsoft .NET Framework 安装配置
    【转载】有关web效率
    解决点击空链接返回页面顶部的方法
    j2se安装配置测试
    汉字转拼音(C#版)
    【转】Google 排名中的 10 个最著名的 JavaScript 库
    【转】并发危险:解决多线程代码中的 11 个常见的问题
    【转】ArcGIS 9.2中时态GIS的应用
  • 原文地址:https://www.cnblogs.com/asdaa/p/12024451.html
Copyright © 2020-2023  润新知