示例
Go的数组要求只能是单一数据类型,这和脚本语言有些差别,而与传统编译型语言一致。
package main
import "fmt"
func main() {
var a [5]int
var size = len(a)
for i := 0; i < size; i++ {
a[i] = i + 1
fmt.Println("a[%d]=%d", i, a[i])
}
total := 0
for i := 0; i < len(5); i++ {
total += a[i]
}
average := total / len(5)
fmt.Println("average:", average)
}
range
数组的另一种遍历方式,用range:——In each iterat ion of the loop, range produces a pair of values: the index and the value of the
element at that index. <> P7
Go的range类似于Java的foreach用法,与Python的for-in-range也很类似。这使得遍历集合的数据更加方便。
下划线_的用法和Python一样,表示对这个数据不关心,直接丢弃掉。
package main
import "fmt" // Printf()
func main() {
var a [5]int
size := len(a)
for i := 0; i < size; i++ {
a[i] = i + 1
}
for i, value := range a {
fmt.Printf("a[%d]=%d\n", i, value)
}
total := 0
for _, value := range a {
total += value
}
average := total / size
fmt.Println("average:", average)
}
声明&初始化
在Go-控制结构中给出了一种初始化数组的方法:
values := [3]string {"Jerry", "Tom", "Jerry & Tom"}
逗号
Go在初始化数组列表的时候,如果每行一个元素的时候,则最后一个元素的后面需要加逗号。这是Go数组很特殊的一个地方。这种情况下,注释掉某一行就非常方便。
package main
import "fmt" // Printf()
func main() {
values := [3]string {"Jerry", "Tom", "Jerry & Tom"}
for _,value := range values {
fmt.Print(value, "\t")
}
fmt.Println()
values2 := [3]string {
"Jerry",
"Tom",
"Jerry & Tom"}
for _,value := range values2 {
fmt.Print(value, "\t")
}
fmt.Println()
values3 := [3]string {
"Jerry",
"Tom",
// If the ending ',' was not provided, there will be an error:
// syntax error: unexpected semicolon or newline, expecting comma or }
"Jerry & Tom",
}
for _,value := range values3 {
fmt.Print(value, "\t")
}
}
有疑问加站长微信联系(非本文作者)