目录
创建数组
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 条评论