首頁  >  文章  >  後端開發  >  如何在 Go 中有效地初始化數組而不使用循環?

如何在 Go 中有效地初始化數組而不使用循環?

Linda Hamilton
Linda Hamilton原創
2024-10-30 23:53:29646瀏覽

How Can You Initialize an Array in Go Efficiently Without Loops?

Go 中無迴圈的高效能數組初始化

可以使用傳統的 for 迴圈來初始化具有統一值的陣列。然而,對於大型陣列,這種方法效率較低。本文探討了在不使用循環的情況下初始化數組的替代方法。

傳統方法

傳統方法包括使用 for 循環迭代數組的元素,將每個元素設定為所需的值。

<code class="go">var A [n]bool
for i := 0; i < n; i++ {
    A[i] = true
}</code>

替代方法

  • 複合文字:
    複合文字允許切片或數組的創建和初始化,但它們並不比傳統方法短。
<code class="go">b1 := []bool{true, true, true}
b2 := [3]bool{true, true, true}</code>
  • 真值常數:
    引入常數對於真值可以稍微減少程式長度。
<code class="go">const T = true
b3 := []bool{T, T, T}</code>
  • 負值儲存:
    根據應用程式邏輯,它可能會更有效率來儲存負值。這樣,全假零值就變成適當的初始化。
<code class="go">presents := []bool{true, true, true, true, true, true}

// Is equivalent to:

missings := make([]bool, 6) // All false
// missings=false means not missing (i.e., present)</code>
  • Memset 操作:
    使用特定值填入陣列被引用為「memset」運算。 Go 沒有為此提供內建函數,但可以在其他來源找到有效的解決方案。

以上是如何在 Go 中有效地初始化數組而不使用循環?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn