创建数组

Golang make创建数组
在Go语言中,make函数用于内建的切片(slice)、映射(map)和信道(channel)的创建。对于数组的创建,我们直接使用字面量或者new函数。

使用字面量创建数组:

arr := [5]int{1, 2, 3, 4, 5}
使用new函数创建数组:

arr := new([5]int)
注意,使用new创建的数组中的元素会被初始化为零值(对于数值类型是0,布尔类型是false,字符串是空字符串,等等)。

make函数通常用于创建长度可变的切片,而非数组。

对于数组,make不能直接使用,因为数组的长度是固定的,并且在定义时就需要指定。如果你需要创建一个可以动态改变长度的“数组”,可以使用切片(Slice),这时候make就是必须的。例如:

slice := make([]int, 5) // 创建一个长度为5的切片
切片和数组在Go语言中是不同的类型,切片是一个引用类型,并且是动态长度的,而数组是一个值类型,长度固定。

遍历

var heroes [3]string = [3]string{"宋江", "吴用", "卢俊义"}
    for index,value := range heroes {
        fmt.Printf("数组heroes[%d] = %v \n",index,value)
    }

不定长数组

var SYSTEMPORTS = [...]int{80, 8080, 7007, 7008}

判断元素是否在数组中

func IsContain(items []string, item string) bool {
    for _, eachItem := range items {
        if eachItem == item {
            return true
        }
    }
    return false
}

不定长数组声明

  • Invalid array bound,must be a constant expression
    https://blog.csdn.net/liulanba/article/details/115670824
    使用make语法来定义数组

    var m = 3
    var n = 4
    #会生成一个初始化的多维数组
    var matrix = make([][]int, m, n)
    #生成一个全0的多维数组
    for i := 0; i < m; i++ {
        matrix[i] = make([]int, n)
    }

any类型转数组

var a any = [...]int{1, 2, 3, 4, 5}
N := 5 // N 必须是常量
arr, ok := a.([]int) // 正确的断言,因为 []int 是一个数组类型
if !ok {
    // 处理类型不匹配的情况
}

0 条评论

发表回复

您的电子邮箱地址不会被公开。