美文网首页
07 Golang值类型——数组

07 Golang值类型——数组

作者: learninginto | 来源:发表于2021-03-22 11:53 被阅读0次
数组

数组的长度是类型的一部分

  • 数组定义和初始化

var 数组变量名 [元素数量]T

var a [3]int
//定义一个长度为3的整型数组a
a[0] = 80
a[1] = 90
a[2] = 10
var arr [3]int
var arr1 [3]string
var arr2 = [3]int{1, 3, 4}
arr3 := [3]string{"php", "nodejs", "golang"}
fmt.Println(arr,arr2,arr2)//[0 0 0] [   ] [1 3 4]

注意:数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。5[int]和4[int]是不同的类型

var arr1 [4]int
var arr2 [5]int
fmt.Printf("arr1=%T arr2=%T", arr1, arr2)
//arr1:[4]int arr2:[5]int

编译器根据初始值的个数自行推断数组长度

var numArray = [...]int{1, 2}
var cityArray = [...]string{"php", "nodejs", "golang"}

指定索引值的方式来初始化数组

func main(){
    a := [...]int{1:1, 3:5}
    fmt.Pringln(len(arr))//4
}
数组的循环遍历
  • for
var arr = [3]int{23,24,5}
for i := 0; i < len(arr); i++ {
    fmt.Println(arr[i])
}
  • for range
var arr = [3]int{23,24,5}
for k, v := range arr { //k对应下标,v对应值
    fmt.Println(v)
}
值类型和引用类型
  • 值类型

基本数据类型和数组都是值类型

var a = 10
b := a 
a = 20
fmt.Println(a, b)//20 10

var arr1 = [...]int{1, 2, 3}
arr := arr1
arr1[0] = 11
fmt.Println(arr1, arr2)//[11 2 3]  [1 2 3]
  • 引用类型(切片)
var arr1 = [...]int{1, 2, 3}
arr2 := arr1
arr1[0] = 11
fmt.Println(arr1, arr2)//[11 2 3] [11 2 3]
多维数组

Go语言是支持多维数组的,但通常使用时不会超过二维

var 数组变量名 [元素数量][元素数量]T

//创建一个三行两列的数组
var arr = [3][2]string{
    {"北京", "上海"},
    {"广州", "深圳"},
    {"成都", "重庆"}
}
for _, v1 := range arr {
    for _, v2 := range v1{
        fmt.Println(v2)
    }
}
for i := 0; i < len(arr); i++ {
    for j := 0; j < len(arr[i]); j++ {
        fmt.Println(arr[i][j])
    }
}

多维数组只有在第一层可以使用...来让编译器推导数组长度

arr := [...][2]string{
    {"北京", "上海"},
    {"广州", "深圳"},
    {"成都", "重庆"}
}

相关文章

  • 07 Golang值类型——数组

    数组 数组的长度是类型的一部分 数组定义和初始化 var 数组变量名 [元素数量]T 注意:数组的长度必须是常量,...

  • Golang:数组与切片的复制

    在Golang中,数组是值类型而切片是引用类型。因此值的复制与切片的复制并不相同。 数组的复制 对于值类型的数组来...

  • 【golang】值类型与引用类型

    golang中分为值类型和引用类型 值类型分别有:int系列、float系列、bool、string、数组和结构体...

  • Go-Array

    golang初始化数组 golang中数组为值类型 方式1:指定数组长度 方式2:自行推断数组长度 方式3:指定索...

  • Go语言学习笔记(3)

    数组 Golang 中,数组是值类型。 数组的声明 数组的初始化 用 for-range 遍历数组 基本语法: 其...

  • Go语言数组和slice

    Golang的数组与切片 相同点:都属于集合类的类型,而且他们的值也都可以用来存储某一种类型的值 不同点:数组类型...

  • Golang基础数据类型

    本节介绍Golang的基本数据类型,字符串,整型,浮点型,数组,切片 类型长度(字节 byte)默认值说明bool...

  • Golang基础(三)——复杂类型

    Golang基础(三)——复杂类型 @([07] golang)[Go总结] [TOC] 指针 定义 指针变量可以...

  • Golang基础(七)——方法method

    Golang基础(七)——方法method @([07] golang)[Go总结] 可以对包内的任意类型定义任意...

  • Golang内置函数

    Golang内置类型和函数 内置类型值类型和引用类型的区别如下:值类型:内存中变量存储的是具体的值 比如: var...

网友评论

      本文标题:07 Golang值类型——数组

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