8. 数组
Posted hatsusakana
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8. 数组相关的知识,希望对你有一定的参考价值。
【数组的声明】
package main import ( "fmt" ) func main() { var a[3] int var b[3] string fmt.Println(a) fmt.Println(b) }
【数组的使用】
package main import ( "fmt" ) func main() { var a[3] int var b[3] string a[0] = 1 a[1] = 2 a[2] = 3 b[0] = "aaa" b[1] = "bbb" b[2] = "ccc" fmt.Println(a) fmt.Println(b) }
很简单的使用方法,注意这里Go语言不支持数组自动扩展,所以数组定义多大,就能使用多大,比如这里: a[3] = 4这样就是错误的,会报错: invalid array index 3 (out of bounds for 3-element array)
【初始化值】
a := [3]int{1, 2, 3} b := [3]string{"aaa", "bbb", "ccc"}
c := [...]int{4, 5, 6, 7, 8, 9, 10}
最后一行可以不指定数组长度初始化,具体长度由初始化的值个数决定。
【遍历数组】
遍历数组常用的就是for循环了,但是Go语言提供了range来迭代数组:
package main import ( "fmt" ) func main() { str := [...]string{"a", "b", "c", "d"} for i := 0; i < len(str); i++ { fmt.Printf("%d: %s ", i, str[i]) } for key, value := range str { fmt.Printf("%d: %s ", key, value) } fmt.Println(str) }
len 可以计算数组长度
【数组切片】
切片是数组的一些功能封装,但是切片并不产生新的数据,切片相当于对现有数据的引用。
package main import ( "fmt" ) func main() { a := [...]int{1, 2, 3, 4, 5, 6} b := a[1:4] b[0] = 999 fmt.Println(a) fmt.Println(b) }
以上面这个例子为例,结果是:
[1 999 3 4 5 6]
[999 3 4]
切片就很像是指针,他的所有操作,源数据都会被改变。
以上是关于8. 数组的主要内容,如果未能解决你的问题,请参考以下文章
在一个无序整数数组中,找出连续增长片段最长的一段, 增长步长是1。Example: [3,2,4,5,6,1,9], 最长的是[4,5,6]
Xcode 8 Autocomplete Broken - 仅显示有限的用户代码片段 - 知道为啥吗?
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”