当前位置:   article > 正文

go 笔记 第五章 golang 的数组和切片_go 获取数组长度

go 获取数组长度

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

定义数组

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

自动识别长度
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)
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

多维数组

// 创建了两个包含两个整形数组的数组
a := [...][2]int{
		{123, 222},
		{11, 22},
	}
// 创建了两个含有两个字符串数组的数组
b := [2][2]string{
{"hello", "world"},
{"this", "is"},
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

a := []int{1, 2, 3, 4, 5}
b := []int{}
c := make([]int, 3, 6)
// 用 make 定义的切片,可以预定义 len cap
  • 1
  • 2
  • 3
  • 4
	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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/206293
推荐阅读
相关标签
  

闽ICP备14008679号