GO学习 数组上创建切片

2022-05-17  本文已影响0人  3天时间

数组上创建切片

package main

import "fmt"

func main() {

  /*

  sliece := arr[start:end]

    切片中的数据:[start,end]

    arr[:end],从头到end

    arr[start:]从start到末尾

  从已有的数组上,直接创建切片,该切片的底层数组就是当前的数组。

    长度是从start到end切割的数据。

    但是容量从start到数组的末尾。

  */

  a :=[10]int{1,2,3,4,5,6,7,8,9,10}

  fmt.Println("_____________1.已有数组直接创建切片__________________")

  s1 :=a[:5]

  s2 :=a[3:8]

  s3 :=a[5:]

  s4 :=a[:]

  fmt.Println("a:",a)

  fmt.Println("s1:",s1)

  fmt.Println("s1:",s2)

  fmt.Println("s1:",s3)

  fmt.Println("s1:",s4)

  fmt.Printf("%p\n",&a)

  fmt.Printf("%p\n",s1)

  fmt.Println("____________2.长度和容量_____________")

  fmt.Printf("s1  len:%d,cap:%d\n",len(s1),cap(s1)) //s1  len:5,cap:10

  fmt.Printf("s2  len:%d,cap:%d\n",len(s2),cap(s2)) //s2  len:5,cap:7

  fmt.Printf("s3  len:%d,cap:%d\n",len(s3),cap(s3)) //s3  len:5,cap:5

  fmt.Printf("s4  len:%d,cap:%d\n",len(s4),cap(s4)) //s4  len:10,cap:10

  fmt.Println("____________3.更改数组的内容_____________")

  a[4] = 100

  fmt.Println(a)

  fmt.Println(s1)

  fmt.Println(s2)

  fmt.Println(s3)

  fmt.Println(s4)

  fmt.Println("____________4.更改切片内容_____________")

  s2[2] = 200

  fmt.Println(a)

  fmt.Println(s1)

  fmt.Println(s2)

  fmt.Println(s3)

  fmt.Println("____________4.更改切片内容_____________")

  s1 = append(s1,1,1,1,1)

  fmt.Println(a)

  fmt.Println(s1)

  fmt.Println(s2)

  fmt.Println(s3)

  fmt.Println("____________5.添加元素切片扩容_____________")

  fmt.Println(len(s1),cap(s1))

  s1 = append(s1,2,2,2,2,2)

  fmt.Println(a)

  fmt.Println(s1)

  fmt.Println(s2)

  fmt.Println(s3)

  fmt.Println(len(s1),cap(s1))

  fmt.Printf("%p\n",s1)

  fmt.Printf("%p\n",&a)

}

运行输出:

_____________1.已有数组直接创建切片__________________

a: [1 2 3 4 5 6 7 8 9 10]

s1: [1 2 3 4 5]

s1: [4 5 6 7 8]

s1: [6 7 8 9 10]

s1: [1 2 3 4 5 6 7 8 9 10]

0xc00001a280

0xc00001a280

____________2.长度和容量_____________

s1  len:5,cap:10

s2  len:5,cap:7

s3  len:5,cap:5

s4  len:10,cap:10

____________3.更改数组的内容_____________

[1 2 3 4 100 6 7 8 9 10]

[1 2 3 4 100]

[4 100 6 7 8]

[6 7 8 9 10]

[1 2 3 4 100 6 7 8 9 10]

____________4.更改切片内容_____________

[1 2 3 4 100 200 7 8 9 10]

[1 2 3 4 100]

[4 100 200 7 8]

[200 7 8 9 10]

____________4.更改切片内容_____________

[1 2 3 4 100 1 1 1 1 10]

[1 2 3 4 100 1 1 1 1]

[4 100 1 1 1]

[1 1 1 1 10]

____________5.添加元素切片扩容_____________

9 10

[1 2 3 4 100 1 1 1 1 10]

[1 2 3 4 100 1 1 1 1 2 2 2 2 2]

[4 100 1 1 1]

[1 1 1 1 10]

14 20

0xc0000160a0

0xc00001a280

Process finished with exit code 0

读完点个赞,给我的坚持更新注入新的活力。

2022.05.17日更 71/365 天

公众号:3天时间

往期同类文章:

GO学习 slice

GO学习 多维数组

GO学习 Array类型和排序

GO学习 Array

上一篇下一篇

猜你喜欢

热点阅读