码迷,mamicode.com
首页 > 编程语言 > 详细

Golang 数组

时间:2020-03-17 11:34:29      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:func   代码示例   指针   数组定义   golang   for   代码   拷贝   dex   

1. 数组的定义和初始化

数组定义语法

var 数组名 [数组长度] 数组类型

定义和初始化数组

代码示例:

package main

import "fmt"

func main() {
    // 1. var 定义数组
    var arr1 [5]int
    fmt.Printf("arr1: %v\n",arr1)

    // 2. := 自动推导,定义并初始化
    arr2 := [3]int{1,2,3}
    fmt.Printf("arr2: %v\n",arr2)

    // 3. 省略大小
    arr3 := [...]int{2,4,6,8,10,12}
    fmt.Printf("arr3: %v\n",arr3)

    // 4. 指定索引初始化
    arr4 := [5]int{1,2,3}
    arr5 := [5]int{3:1, 4:2}
    fmt.Printf("arr4: %v\n",arr4)
    fmt.Printf("arr5: %v\n",arr5)

    // 5. 赋值给别的数组
    arr6 := [5]int{2:1, 3:6}
    fmt.Printf("arr6: %v\n",arr6)
    var arr7 [5]int
    // 两个数组的长度和类型必须相同,否则不认为是一个类型无法相互赋值
    arr7 = arr6
    fmt.Printf("arr7: %v\n",arr7)
}

2. 数组遍历

package main

import "fmt"

func main() {
    // 创建数组
    array := [5]int{1, 3, 5, 7, 9}
    // 1. for
    for i:=0; i< len(array);i++ {
        fmt.Printf("index: %d, val: %d\n", i, array[i])
    }
    fmt.Println()
    // 2. for range
    for index, value := range array {
        fmt.Printf("index: %d, val: %d\n", index, value)
    }
}

3. 二维数组

package main

import "fmt"

func main() {
    // 创建3行两列数组
    var array [3][2]int
    // 数组赋值
    array[0][0] = 00
    array[0][1] = 01
    array[1][0] = 10
    array[1][1] = 11
    array[2][0] = 20
    array[2][1] = 21

    fmt.Println(array)

    // 遍历,两个循环遍历
    for i := 0; i < 3; i++ {
        for j := 0; j < 2; j++ {
            fmt.Printf("row: [%d][%d], val: %d\n", i, j, array[i][j])
        }
    }

    fmt.Println("----------优美的分割线----------")
    for i, val := range array {
        for j, val2 := range val {
            fmt.Printf("row: [%d][%d], val: %d\n", i, j, val2)
        }
    }

}

4. 数组拷贝和传参

package main

import "fmt"

func printArr(arr *[5]int) {
    arr[0] = 10
    for i, v := range arr {
        fmt.Println(i, v)
    }
}

func main() {
    // 指针传递数组并修改会改变原有数组的值
    var arr1 [5]int
    printArr(&arr1)
    fmt.Println(arr1)

    arr2 := [...]int{2, 4, 6, 8, 10}
    printArr(&arr2)
    fmt.Println(arr2)
}

Golang 数组

标签:func   代码示例   指针   数组定义   golang   for   代码   拷贝   dex   

原文地址:https://www.cnblogs.com/zhichaoma/p/12509448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!