Golang数据类型 切片(slice)

Posted sss4

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang数据类型 切片(slice)相关的知识,希望对你有一定的参考价值。

前言

Go中的数组数据类型的长度在声明的时候就已经固定了,切片是基于数组实现的 可变长度的容器。

 

 

切片的定义和初始化

切片类型和数组类型一样,想要使用,就必须要定义和初始化,不同之处已经提到,切片不需要指定切片的长度。

 

1.自定义切片

package main

import (
	"fmt"
)

func main() {
	//切片的定义
	var s1 []int //存放元素不限定,仅限定数据类型
	var s2 []string
	fmt.Println(s1 == nil) //在初始化之前切片的值=nil
	fmt.Println(s2 == nil)
	//切片的初始化
	s1 = []int{1, 2, 3}
	s2 = []string{"刘德华", "郭富城", "黎明", "梁朝伟"}
	//切片的长度和容量
	fmt.Printf("长度:%d 容量:%d", len(s1), cap(s1))
}

  

2.由数组得到切片

 

package main

import (
	"fmt"
)

func main() {

	a1 := [...]int{1, 2, 3, 4, 5, 6, 69}
	s1 := a1[0:2]
	s2 := a1[:4]
	s3 := a1[2:]
	s4 := a1[:]
	fmt.Println(s1, s2, s3, s4)
	//切片的容量:是指底层数组的从切边的第1个元素-----》最后1个元素的数量
	fmt.Printf("切片的长度:%d 切片的容量:%d
", len(s1), cap(s1))
	fmt.Printf("切片的长度:%d 切片的容量:%d
", len(s2), cap(s2))
	fmt.Printf("切片的长度:%d 切片的容量:%d
", len(s3), cap(s3))

}

  

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

see also

以上是关于Golang数据类型 切片(slice)的主要内容,如果未能解决你的问题,请参考以下文章

Golang Slice切片

Golang复合类型

golang基础---Slice切片

Golang basic_leamingM 2023 1

golang快速入门数据类型特别之处(下)

golang之切片