美文网首页
GO学习 数组上创建切片

GO学习 数组上创建切片

作者: 3天时间 | 来源:发表于2022-05-17 22:29 被阅读0次

数组上创建切片

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

相关文章

  • GO学习 数组上创建切片

    数组上创建切片 package main import "fmt" func main() { /* slie...

  • 第03天(复合类型)_03

    13_数组做函数参数.go 14_数组指针做函数参数.go 15_切片的长度和容量.go 16_切片的创建.go ...

  • Go 切片和数组

    数组 go创建数组和 c 语言类似,有如下两种方式: 切片 切片声明和数组类似,只是没有传递长度 创建二维切片,并...

  • go 切片的底层实现

    go 数组切片的底层实现 go的切片也就是所谓的可变数组,当创建的时候,会发现大小只为24,原因就是他本质是一个结...

  • Go语言编程--笔记2018-04-10

    书中35页谈到基于数组切片创建数组切片的时候 4. 基于数组切片创建数组切片类似于数组切片可以基于一个数组创建,数...

  • Go语言切片

    // //Go语言切片 // /* // go语言切片是对数组的抽象 // Go 数组的长度不可改变,在特定场景中...

  • Go语言探索 - 10(原创)

    上一篇文章主要学习了Go语言的结构体以及结构体指针,本篇文章主要学习Go语言的切片以及Map。 Go语言数组的长度...

  • 七、Go切片

    七、Go语言切片(Slice) Go 语言切片是对数组的抽象。 Go 数组的长度不可改变,在特定场景中这样的集合就...

  • Golang Tips

    Go的数组只能有固定的长度,传入变量作为数组长度时,只能创建为定义了size的切片 Go没有内置的比较整数大小的方...

  • golang中数组、切片以及映射(map)的特点

    数组 数组和切片的创建方式不同 数组是值传递,除非声明为指针传递 数组是切片和映射的基石 切片 切片是围绕动态数组...

网友评论

      本文标题:GO学习 数组上创建切片

      本文链接:https://www.haomeiwen.com/subject/svhourtx.html