zoukankan      html  css  js  c++  java
  • 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)
    }
  • 相关阅读:
    redis 基本类型命令
    吴寿仁 学术
    吴寿仁:上海科技成果转化40年
    从“四技”服务的收益中提取奖酬金是否不受当年本单位工资总额限制、不纳入本单位工资
    高校科技成果转化为什么就这样的难
    高校成果转换
    中华人民共和国 促进科技成果转化法
    上海市促进科技成果转化条例
    项目管理
    欧几里得方法计算最大公约数Python版本
  • 原文地址:https://www.cnblogs.com/asdaa/p/12024451.html
Copyright © 2011-2022 走看看