Go语言数组
Go 语言数组声明需要指定元素类型及元素个数,语法格式如下:
var variable_name [SIZE] variable_type
以上为一维数组的定义方式。例如以下定义了数组 balance 长度为 10 类型为 float32:
package main
import "fmt"
func main() {
var balance [10] float32
fmt.Println(balance)
}
输出结果:[0 0 0 0 0 0 0 0 0 0]
为啥全是0呢?因为上面的数组没有初始化,默认值都为0
数组的初始化
数组的初始化就是在变量类型后面添加数值
package main
import "fmt"
func main() {
var balance [3] float32
balance = [3]float32{2.0,3.0,4.0}
fmt.Println(balance)
}
上面例子中,balance被定义了长度,就不能再被改变了!
简写:
var balance = [3] float32{2.0,3.0,4.0}
更简化:
balance := [3] float32{2.0,3.0,4.0}
如果数组长度不确定,可以使用 ... 代替数组的长度,编译器会根据元素个数自行推断数组的长度:
package main
import "fmt"
func main() {
balance := [...] float32{2.0,3.0,4.0}
fmt.Println(balance)
}
修改数组指定值
修改数组中的值,把数组中的第1个元素修改成2.3
package main
import "fmt"
func main() {
balance := [...] float32{2.0,3.0,4.0}
balance[1] = 2.3
fmt.Println(balance)
}
输出结果:2 2.3 4
从上面输入结果看出2是第0个元素,3.0是第一个元素,所以3.0被修改成了2.3
查询数组指定值
读取数组中的值,把数组第一个元素打印出来
package main
import "fmt"
func main() {
balance := [...] float32{2.0,3.0,4.0}
balance[1] = 2.3
fmt.Println(balance)
fmt.Println(balance[1])
}
打印数组的长度,使用len参数
package main
import "fmt"
func main() {
balance := [...] float32{2.0,3.0,4.0}
fmt.Println(len(balance))
}
输出结果:3
更详细的数组类型信息,可使用下面方法
package main
import "fmt"
func main() {
balance := [...] float32{2.0,3.0,4.0}
fmt.Printf("%T\n",balance)
}
输出结果:[3]float32
数组的遍历
最后看下数组的遍历
package main
import (
"fmt"
)
func main() {
balance := [...] string{"北京","上海","广州","深圳"}
for index, value := range balance{
fmt.Println(index, value)
}
}
输出结果:
0 北京
1 上海
2 广州
3 深圳
从上面结果可以看出,第一行是数组的元素位数,第二行是数组的从左往后的值
只打印数组中的值
package main
import (
"fmt"
)
func main() {
balance := [...] string{"北京","上海","广州","深圳"}
for _, value := range balance{
fmt.Println(value)
}
}
输出结果:
北京
上海
广州
深圳
多维数组
最最后说下多维数组
package main
import (
"fmt"
)
func main() {
balance := [3][2] string{
{"北京","上海"},
{"广州","深圳"},
{"大连","青岛"},
}
for index, value := range balance{
fmt.Println(index,value)
}
}
二维数组 balance := [3][2] string代表3个长度是2的数组,二维数组中第一个数字可以使用...代替,balance := [...][2] string,其他不行
二维数组的遍历
package main
import (
"fmt"
)
func main() {
balance := [3][2] string{
{"北京","上海"},
{"广州","深圳"},
{"大连","青岛"},
}
for _, value := range balance{
//fmt.Println(value)
for _,value := range value{
fmt.Println(value)
}
}
}
输出结果:
北京
上海
广州
深圳
大连
青岛
















