Go切片

切片Slic

/*
切片语法:slice [开始位置 : 结束位置]
语法说明如下:
slice:表示目标切片对象;
开始位置:对应目标切片对象的索引;
结束位置:对应目标切片的结束索引
使用方法:
slice[开始位置:] -->截取开始位置到数组的最后一个元素
slice[:结束位置] -->截取从开始元素到结束位置
slice[开始位置:结束位置] -- >截取从开始位置到结束位置的数组元素
slice[:] --> 生成与原数组一样的切片
slice[0:0] -->生成切片将为空
*/
package main

import "fmt"
//定义数组
var a = [4]int{1, 2, 3, 4}

func main() {
	//对数组进行切片
	fmt.Println(a[1:4])
}

直接声明新的切片

/*
声明切片:var name []Type
其中 name 表示切片的变量名,Type 表示切片对应的元素类型。
*/
package main

import "fmt"

func main() {
	// 声明字符串切片
	var strList []string
	// 声明整型切片
	var numList []int
	// 声明一个空切片
	var numListEmpty = []int{}
	// 输出3个切片
	fmt.Println(strList, numList, numListEmpty)
	// 输出3个切片大小
	fmt.Println(len(strList), len(numList), len(numListEmpty))
	// 切片判定空的结果
	fmt.Println(strList == nil) //ture
	fmt.Println(numList == nil) //ture
	fmt.Println(numListEmpty == nil) //false 
	//numListEmpty 已经被分配到了内存,但没有元素,因此和 nil 比较时是 false
	numList = append(numList, 1, 2)//使用append向切片中添加元素
}

使用make()函数构造切片

/*
语法:make( []Type, size, cap )
其中 Type 是指切片的元素类型:
size 指的是为这个类型分配多少个元素
cap 为预分配的元素数量,这个值设定后不影响 
size,只是能提前分配空间,降低多次分配空间造成的性能问题
*/
package main

import "fmt"

func main() {
	a := make([]int, 2)
	b := make([]int, 2, 10)
	fmt.Println(a, b)           //[0 0] [0 0]
	fmt.Println(len(a), len(b)) //2 2
	//使用append向切片中添加元素
	a = append(a, 1, 2, 3)
	fmt.Println(a) //[0 0 1 2 3]
}

append为切片添加元素

package main

import "fmt"

var a []int

func main() {
	a = append(a, 1) //在切片末尾添加一个元素
	fmt.Println(a) //[1]
	a = append(a, 1, 2) //在切片末尾添加两个元素
	fmt.Println(a) //[1,1,2]
	a = append(a, []int{1, 2, 3}...) //在切片末尾添加一个切片
	fmt.Println(a) //[1,1,2,1,2,3]
	a = append([]int{0},a...) //在切片开头添加一个元素
	fmt.Println(a) //[0,1,1,2,1,2,3]
	a = append([]int{-1,-2},a...) //在切片开头添加一个切片
	fmt.Println(a) //[-1 -2 0 1 1 2 1 2 3]
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值