Go语言之切片(Slice)

2020-05-28  本文已影响0人  测试探索
一:初识
  1. 定义切片
    var 切片名 [] type
    切片不需要说明长度,或使用make()函数来创建切片
  2. make()
  3. 理解
func make(t Type,size ...IntegerType) Type
package main

import "fmt"

func main() {
    //数组
    arr := [4] int {1,2,3,4}
    fmt.Println(arr)

    //切片
    s2 := [] int {5,6,7,8}
    fmt.Println(s2)
    fmt.Printf("arr数据类型是%T,s2数据类型是%T\n",arr,s2)

    s3 := make([]int,3,8)
    fmt.Println(s3)
    fmt.Printf("s3容量:%d,长度:%d\n",cap(s3),len(s3))
    s3[0] = 1
    s3[1] = 2
    s3[2] = 3
    fmt.Println(s3)

    //append
    s4 := make([]int,0,5)
    fmt.Println("s4",s4)
    s4 = append(s4,1,2)
    fmt.Println("s4",s4)

    //把s3中的内容加到s4里
    s4 = append(s4,s3...)

    fmt.Println("把s3切片加到s4中:", s4)
}
//结果
[1 2 3 4]
[5 6 7 8]
arr数据类型是[4]int,s2数据类型是[]int
[0 0 0]
s3容量:8,长度:3
[1 2 3]
s4 []
s4 [1 2]
把s3切片加到s4中: [1 2 1 2 3]

二:在已有的数组上直接创建slice

import "fmt"

func main() {
    a := [10] int {1,2,3,4,5,6,7,8,9,10}
    s1 := a[:5] //1-5
    s2 := a[3:8] //4-8
    s3 := a[5:] // 6-10
    s4 := a[:] //1-10
    fmt.Println("a",a)
    fmt.Println("s1",s1)
    fmt.Println("s2",s2)
    fmt.Println("s3",s3)
    fmt.Println("s4",s4)
}
//结果
a [1 2 3 4 5 6 7 8 9 10]
s1 [1 2 3 4 5]
s2 [4 5 6 7 8]
s3 [6 7 8 9 10]
s4 [1 2 3 4 5 6 7 8 9 10]
image.png
上一篇 下一篇

猜你喜欢

热点阅读