ホームページ  >  記事  >  バックエンド開発  >  Go Without Loops でブール配列を初期化するにはどうすればよいですか?

Go Without Loops でブール配列を初期化するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 08:53:02620ブラウズ

How Can I Initialize Boolean Arrays in Go Without Loops?

Go でのブール配列の作成: For ループの代替

Go でブール配列を操作する場合、初期化は一般的なタスクになることがあります。従来のアプローチでは、for ループを使用して各要素を個別に設定します。ただし、ループに頼らずにこの初期化を実現する別の方法があります。

ゼロ値配列の作成

1 つの簡単な解決策は、for ループを完全に使用しないことです。 。 Go の配列は、デフォルトではゼロ値で初期化されます。ブール配列の場合、これはすべての要素が false に設定されることを意味します。したがって、必要なサイズの配列を宣言するだけで、すべての要素が false に設定されて初期化されます。

<code class="go">A := [n]bool{false, false, ..., false}</code>

複合リテラルの使用

Compositeリテラルは、配列またはスライスを作成および初期化するための簡潔な方法を提供します。通常、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) -memset-in-go のアナログ)

以上がGo Without Loops でブール配列を初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。