在Go 中建立布林數組:For 循環的替代方案
在Go 中使用布林數組時,初始化它們可能是一項常見任務。傳統方法涉及使用 for 迴圈來單獨設定每個元素。但是,還有其他方法可以在不訴諸循環的情況下實現此初始化。
建立零值數組
一個簡單的解決方案是完全避免使用 for 迴圈。 Go 中的陣列預設初始化為零值。對於布林數組,這意味著所有元素都將設定為 false。因此,您可以簡單地聲明所需大小的數組,並且它將在所有元素設定為false 的情況下進行初始化:
<code class="go">A := [n]bool{false, false, ..., false}</code>
使用複合文字
複合文字提供了一種建立和初始化陣列或切片的簡潔方法。雖然它們通常比for 循環需要更多的輸入,但它們仍然可以提供方便的解決方案:
<code class="go">A := []bool{true, true, true}</code>
使用常量縮短初始化
如果您經常使用以下方式初始化陣列相同的值,引入常數可以簡化流程:
<code class="go">const T = true A := []bool{T, T, T}</code>
替代邏輯:儲存負值
不要在陣列中儲存正值,而是考慮儲存否定值。這允許您用零值(全部為false)來初始化數組,並將false 解釋為「不存在」或「不缺失」:
<code class="go">missings := make([]bool, 6) // All false // missing=false means not missing, means present</code>
大型數組的最佳化初始化
對於大型數組,最有效的初始化技術是透過「memset」操作。雖然 Go 缺乏內建的 memset 函數,但以下問題提供了高效的解決方案:
[Go 中是否有類似的 memset? ](https://stackoverflow.com/questions/21376450/is -there-analog-of-memset-in-go)
以上是如何在沒有循環的情況下初始化 Go 中的布林數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!