标签:highlight 指针 自动 ++ 遍历数组 方法 nbsp 初始化 csharp
【数组的声明】
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\n", i, str[i])
}
for key, value := range str {
fmt.Printf("%d: %s\n", 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]
切片就很像是指针,他的所有操作,源数据都会被改变。
标签:highlight 指针 自动 ++ 遍历数组 方法 nbsp 初始化 csharp
原文地址:https://www.cnblogs.com/hatsusakana/p/9816322.html