美文网首页
3.2.3.3Golang的数据类型--数组

3.2.3.3Golang的数据类型--数组

作者: 寒暄_HX | 来源:发表于2020-03-16 17:07 被阅读0次

总目录:https://www.jianshu.com/p/e406a9bc93a9

Golang - 子目录:https://www.jianshu.com/p/8b3e5b2b4497

数组

数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。

定义数组

语法
var 变量名 [长度]数组元素类型

例子:

package main

import "fmt"

func main() {
    //数组
    //存放元素的容器
    //必须指定存放的类型与容量

    var arr1 [3]int
    var arr2 [4]int
}

注意事项:
数组的类型与其长度相关联。

package main

import "fmt"

func main() {
    var arr1 [3]int
    var arr2 [4]int
    fmt.Printf("arr1:%T arr2:%T\n", arr1, arr2)
}
----------
arr1:[3]int arr2:[4]int

数组的初始化

数组的初始化有三种方式,第一种是在定义时直接指定,第二种是让编译器自动识别长度,第三种是指定索引初始化。

package main

import "fmt"

func main() {
    var arr1 [3]int
    var arr2 [4]int

    // 数组初始化
    // 如果不初始化,默认元素是0(布尔值是false,数值型是0,字符串是“)
    fmt.Println(arr1, arr2)

    // 初始化一
    arr1 = [3]int{1,3}
    fmt.Println(arr1)

    // 初始化二 根据初始值自动推断数组长度是多少
    arr100 := [...]int{1, 2, 31, 4, 234, 34, 532, 45}
    fmt.Println(arr100)

    // 初始化三 根据索引初始化
    arr4 := [5]int{0: 1, 4: 2}
    fmt.Println(arr4)

}
----------
[0 0 0] [0 0 0 0]
[1 3 0]
[1 2 31 4 234 34 532 45]
[1 0 0 0 2]

遍历数组

遍历数组就要使用for循环了,但是因为遍历的是复合数据类型,所以就有了两种遍历方式。

package main

import "fmt"

func main() {
    // 数组的遍历
    citys := [...]string{"北京", "上海", "深圳"}
    // 1.根据索引遍历
    for i := 0; i < len(citys); i++ {
        fmt.Println(citys[i])
    }

    // 2.for range遍历
    for i, v := range citys {
        fmt.Println(i, v)
    }
}
----------
北京
上海
深圳
0 北京
1 上海
2 深圳

多维数组

Go语言是支持多维数组的,我们这里以二维数组为例.

多维数组的定义

package main

import "fmt"

func main() {
    //多维数组
    var arrs = [3][3]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
    fmt.Println(arrs)
}
----------
[[1 2 3] [4 5 6] [7 8 9]]

多维数组的遍历

package main

import "fmt"

func main() {
    //多维数组
    var arrs = [3][3]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
    fmt.Println(arrs)

    //多维数组的遍历
    for _, v1 := range arrs {
        for _, v2 := range v1 {
            fmt.Println(v2)
        }
    }
}
----------
[[1 2 3] [4 5 6] [7 8 9]]
1
2
3
4
5
6
7
8
9

数组是值类型

就是说引用了数组之后,拷贝数组与原数组之间没有关系了。

package main

import "fmt"

func main() {
    //数组是值类型
    //这句话翻译成Python语言就是  数组是 不可变数据类型
    arr5 := [3]int{1,2,3}
    arr6 := arr5
    arr6[0] = 10
    fmt.Println("arr5:",arr5)
    fmt.Println("arr6:",arr6)
}
----------
arr5: [1 2 3]
arr6: [10 2 3]

练习题

package main

import "fmt"

func main() {
    //数组练习题
    //1.求数组[1,3,5,7,8]所有元素的和
    //2.找出数组中和为指定值的两个元素的下标
    //例如:和为8的两个元素下标分别为(0,3)和(1,2)

     arrays := [...]int{1,3,5,7,8}

     //1
     sum := 0
     for _,v := range arrays{
         sum = sum + v
     }
     fmt.Println(sum)

     //2
     for i := 0;i<len(arrays);i++{
         for j:=i+1;j<len(arrays);j++{
             if arrays[i] + arrays[j] == 8{
                 fmt.Printf("(%d,%d)\n",arrays[i],arrays[j])
             }
         }
     }
}

相关文章

  • 3.2.3.3Golang的数据类型--数组

    总目录:https://www.jianshu.com/p/e406a9bc93a9 Golang - 子目录:h...

  • C# 轻松开发入门 第二节(幕课网)

    数组 数组的声明:数据类型[ ] 数组名 = new 数据类型[长度];,C#的数组是只能储存一种数据类型。数组经...

  • js数组

    js中数据类型分为基本数据类型和复杂(引用)数据类型,数组是属于复杂数据类型 数组的创建 数组的访问与设置 数组的...

  • day2.6_数组

    数组概述 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。 创建数组对象...

  • JAVA(5)数组

    数组数组是在内存中存储相同数据类型的连续的空间 声明数组 语法: 数据类型[ ] 数组名;或者 数据类型 数...

  • java数组

    1、声明数组语法:数据类型[ ]数组名;或数据类型 数组名[ ]; 2、分配空间语法:数组名 = new 数据类型...

  • 数组的定义、作为方法参数传递、作为方法的返回值

    1.1 数组的定义: 方式一: 格式:数组存储的数据类型【】数组名字=new 数组存储的数据类型【长度】;数组存储...

  • 2020-05-15

    关于数组 格式: 数据类型 数组名 [ ]数据类型 [ ] 数组名 数组定义长度的方法1: int n...

  • 数组

    一维数组 创建一维数组 -数组元素的数据类型决定了数组的数据类型,它可以是java中任意的数据类型,包括基本数据类...

  • 二维数组和面向对象

    二维数组 (1)元素是一维数组的数组。 (2)格式: A: 数据类型[][] 数组名 = new 数据类型[m]...

网友评论

      本文标题:3.2.3.3Golang的数据类型--数组

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