我有一个A布尔值数组,由整数索引0到n,所有初始设置为true。我目前的实现是:for i := 0; i < n; i++ { A[i] = true}
2 回答
www说
TA贡献1775条经验 获得超8个赞
使用for循环是最简单的解决方案。创建数组或切片将始终返回一个零值。在这种情况下,bool意味着所有值都将是false( type 的零值bool)。
请注意,使用复合文字您可以创建和初始化切片或数组,但这不会更短:
b1 := []bool{true, true, true}
b2 := [3]bool{true, true, true}
如果你不想使用for循环,你可以通过为 value 引入一个常量来缩短它true:
const T = true
b3 := []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”操作。
- 2 回答
- 0 关注
- 186 浏览
添加回答
举报
0/150
提交
取消