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

golang语言学习第七课:数组

时间:2019-01-13 23:31:11      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:值传递   main   函数参数传递   for   grid   pack   长度   修改   维数   

go语言中,定义数组有3种方法:

//定义数组的3种方法

     var arr1 [5]int   //必须在[]中填入数组的大小,如果不填则不是数组,而是切片

     arr2 := [3] int {1,3,5}  //第二种定义数组的方法,只能在函数体内用,必须给初始值。
     arr3 := [...] int {2,4,6,8,10}  //第三种,让编译器去计算个数的方法。
 var grid [4][5]int   //定义一个2维数组,4行5列,从前往后读,4个东西,4个什么东西呢,4个长度为5的int数组
     //go语言支持2维或多维数组

遍历数组也有2种方法:

具体看完整的练习代码吧:

package main

import "fmt"

func main() {
     //定义数组的3种方法

     var arr1 [5]int   //必须在[]中填入数组的大小,如果不填则不是数组,而是切片

     arr2 := [3] int {1,3,5}  //第二种定义数组的方法,只能在函数体内用,必须给初始值。
     arr3 := [...] int {2,4,6,8,10}  //第三种,让编译器去计算个数的方法。

     fmt.Println(arr1, arr2, arr3)

     var grid [4][5]int   //定义一个2维数组,4行5列,从前往后读,4个东西,4个什么东西呢,4个长度为5的int数组
     //go语言支持2维或多维数组
     fmt.Println(grid)


     //遍历数组的第一个方法,不常用
     for i:=0; i<len(arr3); i++ {
         fmt.Print(arr3[i])
     }

     //遍历数组的第2种方法,也是最常用的方法:
     for k:= range arr3 {
         fmt.Println(k)
         fmt.Println("----------")
    }

    for _,v:= range arr3 {   //注意:range不要打错成rang,少打字母e
        fmt.Println(v)
        fmt.Println("+++++++++++")
    }
    for k,v:= range arr3 {
        fmt.Println(k,v)
    }
}

 需要注意的是: go语言中, 数组是值类型,不会对原始数组里的数据做出修改,只是简单的拷贝。

另外需要注意的是: 

[10]int 和 [20]int 是不同的类型

调用 func f(arr [10]int) 会拷贝数组,不会改变数组里面的值, go语言中函数参数传递就一种方法:值传递,如需改变数组里的值,可以用指针。

 在go语言中一般不直接使用数组,而是使用Slice切片

golang语言学习第七课:数组

标签:值传递   main   函数参数传递   for   grid   pack   长度   修改   维数   

原文地址:https://www.cnblogs.com/golangxiong/p/10264388.html

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