likes
comments
collection
share

Go复合数据类型之数组

作者站长头像
站长
· 阅读数 16

「这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战

写在前面👀

今天主要讲讲数组🌯

数组🥫

数组(Array)是同一种数据类型的固定长度的序列🍖

  1. 长度是数组组成的一部分,且必须是整数,一经定义就无法改变(因此在Go语言中很少直接使用数组)
  2. 数组的每个元素可以通过索引下标来访问,索引下标的范围是从0开始到数组长度减1的位置,可以用len( )函数和cap( )函数返回数组的长度和容量

一、定义与初始化数组🍠

  • 语法👇
定义数组:
    var 数组名 [数组长度] Type   //Type表示数据类型,可以是任意基本类型
全局初始化:
    var a [3]bool = [3]bool{true, false}    // 未初始化元素值为默认值
    var b = [5]int{1, 2, 3, 4, 5}
    var c = [...]complex64{1+2i, 2+1i, 3-0.5i, 4+2i, 5-0.1i, 6-5i}  //[...]表示通过初始化值确定数组长度
    var d = [5]string{3: "倔强的牛角", 4: "LZH"} // 使用索引号初始化元素
    var e = [6]float64{3.14,3.141,3.1415}
    var f = [2]struct {
		name string
		age  uint
	}{{"大角牛", 18}, {"小角牛", 8}}  //最后一行可以不加逗号
局部初始化:
    g := [4]int{1, 2}           
    h := [...]string{"Nami", "Sanji", "Zero", "Luffy"}   
    i := [9]bool{2: true, 4:true} 
    j := [...]struct {
        book string
        price float64
    }{
        {"Go程序设计语言",55.30 }, 
        {"Go Web编程", 60.83}, // 最后一行必须加逗号
    }
  • 示例👇
package main

import "fmt"

var a [3]bool = [3]bool{true, false} // 未初始化元素值为默认值
var b = [5]int{1, 2, 3, 4, 5}
var c = [...]complex64{1 + 2i, 2 + 1i, 3 - 0.5i, 4 + 2i, 5 - 0.1i, 6 - 5i} //[...]表示通过初始化值确定数组长度
var d = [5]string{3: "倔强的牛角", 4: "LZH"}                                    // 使用索引号初始化元素
var e = [6]float64{3.14, 3.141, 3.1415}
var f = [2]struct {
	name string
	age  uint
}{{"大角牛", 18}, {"小角牛", 8}} //最后一行可以不加逗号
func main() {
	g := [4]int{1, 2}
	h := [...]string{"Nami", "Sanji", "Zero", "Luffy"}
	i := [9]bool{2: true, 4: true}
	j := [...]struct {
		book  string
		price float64
	}{
		{"Go程序设计语言", 55.30},
		{"Go Web编程", 60.83}, // 最后一行必须加逗号
	}
	fmt.Println(a, b, c, d, e, f)
	fmt.Println(g, h, i, j)
}

  • 结果👇

Go复合数据类型之数组

二、遍历数组🍗

1.常规方法🥩

  • 示例👇
package main

import "fmt"

func main() {
	animal := [...]string{"小狗🦮", "小猫🐈", "小猪🐖", "小兔子🐇", "大角牛🐂"}
	for index := 0; index < len(animal); index++ {
		fmt.Printf("animal[%d]=%s\n", index, animal[index])
	}
	fmt.Printf("一共有%d只小动物", len(animal))
}

  • 结果👇

Go复合数据类型之数组

2.用for range遍历数组🥟

  • 示例👇
package main

import "fmt"

func main() {
	animal := [...]string{"小狗🦮", "小猫🐈", "小猪🐖", "小兔子🐇", "大角牛🐂"}
	for index, value := range animal {
		fmt.Printf("animal[%d]=%s\n", index, value)
	}
	fmt.Printf("一共有%d只小动物", len(animal))
}

  • 结果👇

Go复合数据类型之数组

三、数组可以比较🥠

如果两个数组的长度和类型都相同,可以通过比较运算符==!=来判断两个数组是否相等,不能比较两个类型不同的数组,否则程序会报错🥡

  • 示例👇
package main

import "fmt"

var a = [3]int{1, 2, 3}

func main() {
	b := [...]int{1, 2, 3}
	c := [3]int{}
	fmt.Println(a == b)
	fmt.Println(a == c)
	fmt.Println(b == c)
}

  • 结果👇

Go复合数据类型之数组

写在后面🙌

感谢观看✨ 如有不足,欢迎指出💖