Go入门(6)——数组数组:具有相同唯一类型的一组被编号且长度固定的数据项序列。类型可以是任意的原始类型,如整型、字符串或者自定义类型。数组长度必须是常量表达式,并且必须是非负整数。声明格式:var iden...
Go入门(6)——数组
数组:具有相同唯一类型的一组被编号且长度固定的数据项序列。类型可以是任意的原始类型,如整型、字符串或者自定义类型。数组长度必须是常量表达式,并且必须是非负整数。
声明格式:
var identifier [len]type
如:
var arr_name [9]int
注意事项
如果需要让数组元素类型为任意类型,可以使用空接口作为类型,使用其值前必须做类型判断。
数组索引从0开始;数组长度最大为2Gb。
遍历
由于存在索引,方便了for结构:
package main
import "fmt"
func main(){
var arr1 [5]int
for i:=0; i < len(arr1); i++{
arr1[i] = 2 * i
}
for i:=0; i < len(arr1); i++{
fmt.Printf("Array at index %d is %d\n", i, arr1[i])
}
}
输出结果为:
Array at index 0 is 0
Array at index 1 is 2
Array at index 2 is 4
Array at index 3 is 6
Array at index 4 is 8
此外还有for-range结构:
for i, _ := range arr1{
// ...
}
多维数组
Go的多维数组是矩形式的。
package main
const (
WIDTH = 1920
HEIGHT = 1080
)
type pixel int
var screen [WIDTH][HEIGHT]pixel
func main(){
for y:=0; y < HEIGHT; y++{
for x:=0; x < WIDTH; x++{
screen[x][y] = 0
}
}
}
将数组传递给函数
将大型数组传递给函数非常消耗内存。以下两种方法可以避免这种问题:
- 传递数组的指针;
- 使用数组的切片。
package main
import "fmt"
func main(){
// 传指针
array := [3]float64{7.0, 8.5, 9.2}
x := Sum(&array)
fmt.Printf("The sum of the array is: %f", x)
}
func Sum(a *[3]float64)(sum float64){
for _, v := range a{
sum += v
}
return
}
织梦狗教程
本文标题为:Go入门(6)——数组
基础教程推荐
猜你喜欢
- Ruby3多线程并行Ractor使用方法详解 2023-07-23
- R语言绘制折线图实例分析 2022-11-21
- R语言-修改(替换)因子变量的元素操作 2022-11-26
- R语言 ggplot2改变柱状图的顺序操作 2022-11-17
- ruby-on-rails-为使用Rails 4,nginx和乘客的用户设置自定义域 2023-09-21
- Swift中重写和重载的使用与对比总结 2023-07-05
- 浅析ELF转二进制允许把 Binary 文件加载到任意位置 2023-07-06
- ruby on rails validates 2023-09-22
- win10下使用virtualbox + vagrant配置ruby开发机环境 2023-07-23
- Swift初始化器与可选链的使用方法介绍 2023-07-08
