美文网首页
Go学习--数组

Go学习--数组

作者: liuxuech | 来源:发表于2016-10-18 01:08 被阅读0次

                                                   数组

    数组是具有相同唯一类型的一组已编号且长度固定的数据项序列;这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。数组长度必须是一个常量表达式,并且必须是一个非负整数。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。

    数组声明格式:

    var array [len]type ;  或者 array := [len]type{} 注意:这里的{}是必须的

    ep:

     var names [5]string; 或者 array := [5]string{}

    获取数组长度:

    var arr [5]int or arr := [5]int{} 

    ep:

    len(arr) //5

    range遍历数组:

    arr := [5]int{1, 2, 3, 4}

    ep:

    for i, v := range arr {

      //i 为index, v为value

      //如果i在这里不使用,则不能这样使用,不然编译会报错, ep: for _, v := range arr {}

    }

    注意:这里的value只是值拷贝,不能在这里更改数组的值。

    range的用法细节:

    1、for i,v := range arr { }

    2、var i,v int

           for i,v = range arr { }

    1和2的却别在于,1是让定义i,v并同时接收range返回的值, 2则是用两个定义好的变量去接收range返回的值。

    注意:Go语言中数组是一种值类型,所以可以通过new关键字来创建

    var arr1 = new([5]int)  or arr1 := new([5]int)

    var arr2 [5]int  or arr2 := [5]int{}

    区别:

    arr1的类型是: *[5]int,  arr2的类型是[5]int

    数组字面量:

    var arrKeyValue = [5]string{3: "xuechao", 4: "liu"} //这里讲这个数组的第4个和第5个元素分别指定为了"xuechao", "liu", 3和4分别代表为数组的索引

    or:

    var arr = [4]{1,2,3,4}  or  arr := [4]int{1,2,3,4}

    将数组传递给函数:

    如果传递一个大的数组,则会消耗很多内存,有两种方法可以解决:

    1,传递数组的指针

    2,传递数组的切片

    多维数组的声明并初始化:

    var arrs= [5][10][4]int{{{1, 2}, {2, 3}}, {{3, 4}, {4, 5}}}

    相关文章

      网友评论

          本文标题:Go学习--数组

          本文链接:https://www.haomeiwen.com/subject/jevzyttx.html