go语言 – 多维数组

到目前为止,我们创建的数组都是一维的。go中也可以创建多维数组。

package main

import (  
    "fmt"
)

func printarray(a [3][2]string) {  
    for _, v1 := range a {
        for _, v2 := range v1 {
            fmt.Printf("%s ", v2)
        }
        fmt.Printf("\n")
    }
}

func main() {  
    a := [3][2]string{
        {"lion", "tiger"},
        {"cat", "dog"},
        {"pigeon", "peacock"}, //这个逗号是必须的,如果省略,编译器就会报错。这是因为lexer根据简单的规则自动插入分号,详情阅读https://golang.org/doc/effective_go.html#分号。
    }
    printarray(a)
    var b [3][2]string
    b[0][0] = "apple"
    b[0][1] = "samsung"
    b[1][0] = "microsoft"
    b[1][1] = "google"
    b[2][0] = "AT&T"
    b[2][1] = "T-Mobile"
    fmt.Printf("\n")
    printarray(b)
}

在上面的程序中,先声明了一个二维字符串数组a

然后声明了二维数组b,并给其元素赋值。

以上程序的输出为

lion tiger  
cat dog  
pigeon peacock 

apple samsung  
microsoft google  
AT&T T-Mobile  

虽然数组似乎足够灵活,但它们有一个限制,即数组长度是固定的,不能变化,这就是使用切片(slice)的原因,实际上,go中切片比传统数组更常见。



浙ICP备17015664号-1 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载