Go-Array

SodaCrush · · 3052 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

golang初始化数组

golang中数组为值类型

方式1:指定数组长度

func main() {
    var defaltArray [3]int                        //数组会初始化为int类型的零值
    var numArray = [3]int{1, 2}                 //使用指定的初始值完成初始化
    var strArray = [3]string{"python", "java", "golang"} //使用指定的初始值完成初始化
    fmt.Println(defaltArray)                     //[0 0 0]
    fmt.Println(numArray)                       //[1 2 0]
    fmt.Println(strArray)                      //[python java golang]
}

方式2:自行推断数组长度

func main() {
    var defaltArray[3]int
    var numArray = [...]int{1, 2, 3, 4}
    var strArray = [...]string{"python", "java", "golang"}
    fmt.Println(defaltArray)                        //[0 0 0]
    fmt.Println(numArray)                           //[1 2 3 4]
    fmt.Printf("type of numArray:%T\n", numArray)   //type of numArray:[2]int
    fmt.Println(strArray)                          //[python java golang]
    fmt.Printf("type of strArray:%T\n", strArray) //type of strArray:[3]string
}

方式3:指定索引并赋值

func main() {
    a := [...]int{1: 2, 3: 4}
    fmt.Println(a)                  // [0 2 0 4]
    fmt.Printf("type of a:%T\n", a) //type of a:[4]int
}

数组遍历

func main() {
    var a = [...]string{"python", "java", "golang"}
    // 方法1:for循环根据数组长度遍历
    for i := 0; i < len(a); i++ {
        fmt.Println(a[i])
    }

    // 方法2:for range遍历
    for index, value := range a {
        fmt.Println(index, value)
    }
}

多维数组

多维数组仅支持最外层使用...来进行自动推导

// 正确写法
a := [...][2]string{
    {"北京", "上海"},
    {"广州", "深圳"},
    {"成都", "重庆"},
}
// 以下是错误写法
b := [3][...]string{
    {"北京", "上海"},
    {"广州", "深圳"},
    {"成都", "重庆"},
}

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:SodaCrush

查看原文:Go-Array

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3052 次点击  
加入收藏 微博
上一篇:Go-Slice
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传