go 笔记 第五章 golang 的数组和切片

19 篇文章 0 订阅

数组就是把同一类元素放在一起的集合,相当于 python 的list

定义数组

// 数组名 := [长度]类型[元素1,元素2,...]
a := [3]int{1, 2, 3}
p := new([10]int)

自动识别长度
a := […]int{1, 2, 3}

循环数组

// 方法一
a := [...]int{1, 2, 3}

for i := 0; i < len(a); i++ {
    fmt.Println(a[i])
}
// 方法二
for index, value := range a {
fmt.Println(index, value)
}

数组常用方法 len cap
len() 获取数组或切片的长度
cap() 获取数组或切片的容量

多维数组

// 创建了两个包含两个整形数组的数组
a := [...][2]int{
		{123, 222},
		{11, 22},
	}
// 创建了两个含有两个字符串数组的数组
b := [2][2]string{
{"hello", "world"},
{"this", "is"},
}

数组长度固定,切片长度不固定
切片就是一个不固定长度的数组

a := []int{1, 2, 3, 4, 5}
b := []int{}
c := make([]int, 3, 6)
// 用 make 定义的切片,可以预定义 len cap
	a := [...]int{1, 2, 3}
	b := a[1:] // b 就是切片
	b = append(b, 11)
	b = append(b, 11, 23, 23)
	b = append(b, 11)
	fmt.Println(b)
	fmt.Println(a)
	// 切片名称 := make([]类型, len, cap)
	c := make([]int, 3, 6)
	fmt.Println(c, len(c), cap(c))

copy 方法

a := []int{1, 2, 3, 4, 5}
b := []int{9, 8, 7}
copy(a, b)
fmt.Println(a, b)
// [9 8 7 4 5] [9 8 7]

// 只复制到特定位置
a := []int{1, 2, 3, 4, 5}
b := []int{9, 8, 7}
copy(a[3:4], b)
fmt.Println(a, b)
// [1 2 3 9 5] [9 8 7]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值