前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go编程基础-基础篇 10

Go编程基础-基础篇 10

原创
作者头像
未来最可爱的人
修改2021-03-04 17:50:15
2130
修改2021-03-04 17:50:15
举报
文章被收录于专栏:编程基础编程基础

切片的创建

切片在使用之前必须要初始化,它没有零值。声明后它的值是 nil

代码语言:javascript
复制
package main

import "fmt"

func main() {
	var a []int
	fmt.Println("初始化前:", a)
	a = make([]int, 5, 10)
	fmt.Println("初始化后:", a)
	a[4] = 6
	fmt.Println("赋值后:", a)
}
代码语言:javascript
复制
初始化前: []
初始化后: [0 0 0 0 0]
赋值后: [0 0 0 0 6]

切片的截取

可以从任意长度开始切,切到任意长度为止,然后这一段拿出来就是一个新的切片

代码语言:javascript
复制
package main

import "fmt"

func main() {
	var a = []int{1, 2, 3, 4, 5}
	fmt.Println("a[1:3]=", a[1:3])
	fmt.Println("a[1:]=", a[1:])
	fmt.Println("a[:3]=", a[:3])
}
代码语言:javascript
复制
a[1:3]= [2 3]
a[1:]= [2 3 4 5]
a[:3]= [1 2 3]

切片的追加

代码语言:javascript
复制
package main

import "fmt"

func main() {
	var a = []int{1, 2, 3, 4, 5}
	a = append(a, 6)
	fmt.Println(a)
	a = append(a, 7, 8)
	fmt.Println(a)
	b := []int{9, 10}
	a = append(a, b...)
	fmt.Println(a)
}
代码语言:javascript
复制
[1 2 3 4 5 6]
[1 2 3 4 5 6 7 8]
[1 2 3 4 5 6 7 8 9 10]

切片的长度和容量

在切片中可以使用len()获取切片中元素的数量,也就是切片的长度。使用cap()可以获取切片引用的数组的长度,也就切片的容量

s[begin?max]

截取切片s从begin到end的数据,构成一个容量为max-begin,长度为begin-end的切片。

s[begin:end]

截取切片s从begin到end的数据,构成一个容量和长度均为begin-end的切片。

s[begin:]

截取切片s从begin到最后的数据,构成一个容量和长度均为len(s)-end的切片。

s[:end]

截取切片s从0到最后的数据,构成一个容量和长度均为end-0的切片。

代码语言:javascript
复制
package main

import "fmt"

func main() {
	var a = []int{1, 2, 3, 4, 5}
	fmt.Printf("a的地址%p,a的长度%d,a的容量%d\n", a, len(a), cap(a))
	a = append(a, 6)
	fmt.Printf("a的地址%p,a的长度%d,a的容量%d\n", a, len(a), cap(a))
	a = append(a, 7, 8)
	fmt.Printf("a的地址%p,a的长度%d,a的容量%d\n", a, len(a), cap(a))
	b := []int{9, 10, 11}
	a = append(a, b...)
	fmt.Printf("a的地址%p,a的长度%d,a的容量%d\n", a, len(a), cap(a))
}
代码语言:javascript
复制
a的地址0xc0000aa030,a的长度5,a的容量5
a的地址0xc0000ba000,a的长度6,a的容量10
a的地址0xc0000ba000,a的长度8,a的容量10
a的地址0xc0000bc000,a的长度11,a的容量20

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 切片的创建
  • 切片的截取
  • 切片的追加
  • 切片的长度和容量
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档