美文网首页
GO入门(六)数组

GO入门(六)数组

作者: 石头上的叶子 | 来源:发表于2018-12-08 22:54 被阅读0次

数组就是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素,一个数组包含的元素个数被称为数组的长度。

一、定义数组的格式

var <varName> [n]<type> 这里要注意n>=0

    var a [2]int
    a[0] = 1
    a[1] = 2
    fmt.Println(a)  //[1 2]

    //上边的初始化也可以写成如下的方式
    c := [2]int{1,2}
    fmt.Println(c) //[1 2]

    //第一个元素设置为1,其他的默认
    d := [2]int{1}
    fmt.Println(d) //[1 0]

    //创建一个大小为10的int类型数组,给索引为1的赋值为1,
    //索引为6的赋值为6,注意索引是从0开始
    e := [10]int{1:1,6:6}
    fmt.Println(e) //[0 1 0 0 0 0 6 0 0 0]

    //如果初始化的时候确定数量也可以用...来省略数量
    f := [...]int{1,2,3,4}
    fmt.Println(f) //[1 2 3 4]

二、不同长度的数组属于不同的类型

数组的长度也是类型的一部分,因此如果数组的长度不同他们也不是同一种类型

    var a [2]int
    var b [4]int
    b = a  // 这样会报错 cannot use a (type [2]int) as type [4]int in assignment
    fmt.Println(b);

下面就是对的

    var a [2]int
    var b [2]int
    b = a

    fmt.Println(b); //[0 0] int 类型默认初始化为0

三、数组在GO语言中是值类型

数组在go语言中是值类型的,这就意味着我们在方法传递的时候实际上是对数组进行了一个copy,所有对形参的操作都不会改变原数组

package main

import "fmt"

func main(){
    arr := [3]int{1, 3, 5}
    changeArr(arr)
    fmt.Println("main函数内:",arr)
}

func changeArr(a [3]int){
    a[1] = 10
    fmt.Println("changeArr函数内:",a)
}

结果

changeArr函数内: [1 10 5]
main函数内: [1 3 5]

可以看出changeArr方法并未改变原数组的值

四、数组可以使用==和!=来进行比较

    arr1 := [3]int{1, 2, 3}
    arr2 := [3]int{1, 2, 3}

    fmt.Println(arr1 == arr2)//true
    fmt.Println(arr1 != arr2)//false


    arr3 := [3]int{}
    arr4 := [3]int{1, 2, 3}
    fmt.Println(arr3 == arr4)    //false


五、GO可以创建多维的数组

    var arr [3][5]int 
    fmt.Println(arr)  //[[0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0]]

相关文章

  • GO入门(六)数组

    数组就是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素,一个数组包含的元素个数被称为数组的长度。 ...

  • Golang之数组和切片

    引用 数组、字符串和切片 Go数组中的索引问题 深入解析 Go 中 Slice 底层实现 Golang 入门 : ...

  • Go每日精选(2019-06-14)- 基础部分

    1. Go语言的传参和传引用 2. PHP转Go系列:数组与切片 3. Golang 入门 : channel(...

  • 六.Go数组

    数组array 定义数组的格式 var 数组名称 [数组长度]{数组内容} 数组长度也是类型的一部分,隐刺不同长度...

  • Go语言入门:数组

    第一种声明方式 这是第一种数组声明方式,未初始化的元素值默认为0,需要指明数组的长度,然后使用下标索引方式初始化和...

  • Go语言数组快速入门

    数组的遍历 for index,value :=range 数组{} 注:index 和value作用域都在for...

  • 第03天(复合类型)_02

    06_为什么需要数组.go 07_数组的基本使用.go 08_数组的初始化.go 09_二维数组的介绍.go 10...

  • Go语言切片

    // //Go语言切片 // /* // go语言切片是对数组的抽象 // Go 数组的长度不可改变,在特定场景中...

  • Go语言第3天 - 常用数据类型

    以下内容部分参考自Go语言基础数据类型Go语言中的数组切片:特立独行的可变数组Go语言数据类型-数组Go标准容器之...

  • golang快速入门[4]-go语言如何编译为机器码

    前文 golang快速入门[2.1]-go语言开发环境配置-windows golang快速入门[2.2]-go语...

网友评论

      本文标题:GO入门(六)数组

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