亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Go 中不使用 for 循環初始化數組?

如何在 Go 中不使用 for 循環初始化數組?

Go
楊__羊羊 2021-11-08 18:30:09
我有一個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”操作。


查看完整回答
反對 回復 2021-11-08
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

在不知道數組元素個數的情況下,使用 range 函數進行初始化。

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


查看完整回答
反對 回復 2021-11-08
  • 2 回答
  • 0 關注
  • 220 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號