zoukankan      html  css  js  c++  java
  • 切片

    定义

    切片是由数组建立的一种方便、灵活且功能强大的包装(Wrapper)。切片本身不拥有任何数据。它们只是对现有数组的引用。

    定义切片第一种方法

    package main
    
    import "fmt"
    
    func main(){
        var a = [8]int{1,2,3,4,5,6}
        var b = a[1:5]
        fmt.Println(b)  // 打印结果:[2 3 4 5]
    }

     

    切片的修改(根据索引修改)

    package main
    
    import "fmt"
    
    func main(){
        var a = [8]int{1,2,3,4,5,6}
    
        a[2] = 50
        fmt.Println(a)  // 打印结果:[1 2 50 4 5 6 0 0]
    }

    切片的长度和容量

    切片的长度是切片中的元素数。切片的容量是从创建切片索引开始的底层数组中元素数。

    package main
    
    import "fmt"
    
    func main(){
        var a [9]int = [9]int{1,2,3,4,5,6}
        var b []int = a[2:5]
        fmt.Println(len(b))  // 索引2:5的值为3位,所以打印结果为3
        fmt.Println(cap(b))  // 容量是从索引第二位开始,索引打印结果为7
    }

    定义并初始化切片(通过make创建)

    func make(len,cap)通过传递类型,长度和容量来创建切片。容量是可选参数, 默认值为切片长度。make 函数创建一个数组,并返回引用该数组的切片。

    package main
    
    import "fmt"
    
    func main(){
    
        var a[]int = make([]int,3)
        fmt.Println(a)
    }

    切片追加值(内置函数append)

    package main
    
    import "fmt"
    
    func main(){
    
        var a [8]int = [8]int{1,2,3,4,5,6}
        var b[]int = a[2:6]
        b = append(b,666)
        fmt.Println(b)  // 打印结果:[3 4 5 6 666]  直接在切片值得后面追加值
    
    }

    切片的函数传递

    package main
    
    import "fmt"
    
    func main(){
    
    
    
        var b =make([]int,3,4)
        test(b)
        fmt.Println(b)
    
    }
    func test(b []int)  {
        b[0]=999
        fmt.Println(b)
    }

    切片在内部可由一个结构体类型表示

    type slice struct {  
        Length        int
        Capacity      int
        ZerothElement *byte
    }

    多维切片

    类似于数组,切片可以有多个维度。

    package main
    
    import "fmt"
    
    func main(){
        var a[][]string = make([][]string,2,3)
        fmt.Println(a[0])
        if a[0] == nil{
            fmt.Println("")
        }
    }

    copy函数

    package main
    
    import "fmt"
    
    func main(){
    
        var a=make([]int,3,100)
        a[0] = 66
        a[1] = 99
        fmt.Println(a)
        var b =make([]int,3,4)
        fmt.Println(b)
        copy(b,a)  //b复制a的值
        fmt.Println(b)
    }
  • 相关阅读:
    win8 win10 安装msi 提示2502、2503的错误代码
    本地wamp的Internal Server Error错误解决方法
    安卓客户端测试总结
    测试bug级别定义
    测试流程
    测试人员的分工
    web安全测试-AppScan使用分享
    性能测试-小计
    0基础学java_字节流和字符流
    0基础学java_通配符
  • 原文地址:https://www.cnblogs.com/xiongying4/p/12024651.html
Copyright © 2011-2022 走看看