2015-09-25 17 views

回答

8

使用for循環是最簡單的解決方案。創建一個數組或切片將始終返回一個歸零值。在bool的情況下意味着所有值將是false(類型bool的零值)。

注意使用Composite literal您可以創建和初始化片或陣列,但不會是任何更短:

b1 := []bool{true, true, true} 
b2 := [3]bool{true, true, true} 

如果你不想使用for循環,可以使它矮一點通過引入一個恆定的值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」操作。 Go沒有應該是一個內置函數,但是對於一個有效的解決方案見這樣的問題:使用範圍功能不知道數組中元素的數目

Is there analog of memset in go?

0

製作動初始化。

for i,_:=range(A){A[i] = true} 
+1

for i:= range A [A [i] = true} –