猿问

如何在 Go 中不使用 for 循环初始化数组?

我有一个A布尔值数组,由整数索引0到n,所有初始设置为true。


我目前的实现是:


for i := 0; i < n; i++ {

    A[i] = true

}


杨__羊羊
浏览 194回答 2
2回答

www说

使用for循环是最简单的解决方案。创建数组或切片将始终返回一个零值。在这种情况下,bool意味着所有值都将是false( type 的零值bool)。请注意,使用复合文字您可以创建和初始化切片或数组,但这不会更短:b1 := []bool{true, true, true}b2 := [3]bool{true, true, true}如果你不想使用for循环,你可以通过为 value 引入一个常量来缩短它true:const T = trueb3 := []bool{T, T, T}如果n很大,for是最简单的解决方案。或者您可以切换应用程序的逻辑,并使用数组或切片将否定值存储在切片中,这样“全假”零值将是一个很好的初始值。我的意思是,如果您的切片要存储文件是否存在,您可以更改逻辑,以便切片存储文件是否丢失:presents := []bool{true, true, true, true, true, true}// Is equivalent to:missings := make([]bool, 6) // All false// missing=false means not missing, means present)另请注意,使用特定值填充数组或切片称为“memset”操作。

炎炎设计

在不知道数组元素个数的情况下,使用 range 函数进行初始化。for&nbsp;i,_:=range(A){A[i]&nbsp;=&nbsp;true}
随时随地看视频慕课网APP

相关分类

Go
我要回答