ホームページ >バックエンド開発 >Golang >For ループを使用せずに Go でブール配列を効率的に初期化する方法は?

For ループを使用せずに Go でブール配列を効率的に初期化する方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 02:04:02919ブラウズ

How to Efficiently Initialize a Boolean Array in Go Without a For Loop?

Go で For ループを使用しない効率的な配列の初期化

ブール値の配列を true 値で初期化する場合、通常、for ループは最も単純なアプローチ。ただし、特定のシナリオではより効率的な代替方法があります。

1 つの戦略は、Go で新しく作成された配列またはスライスがゼロ値で初期化されるという事実を利用することです。ブール配列の場合、これはすべての要素が false になることを意味します。必要なサイズの配列を作成すると、次のように配列要素を割り当てるだけで、すべての要素を true に効果的に初期化できます。

<code class="go">const n = 100
b := make([]bool, n)</code>

もう 1 つのオプションは、複合リテラル構文を利用することです。これは for ループを使用するより大幅に短いわけではありませんが、よりコンパクトな表現を提供できます。

<code class="go">b1 := []bool{true, true, true}
b2 := [3]bool{true, true, true}</code>

配列サイズが大きい場合は、for ループを使用するのが最も単純で効率的な解決策です。ただし、アプリケーションのロジックを再考することを検討できます。たとえば、配列が現在存在するファイルを表す場合、代わりにスライスを使用してファイルが欠落しているかどうかを保存できます。このように、デフォルトのゼロ値 false は、ファイルが存在することを示します。

<code class="go">present := make([]bool, n)</code>

最後に、より効率的に配列を初期化するには、「Is there an memset in行く?"潜在的な解決策については。

以上がFor ループを使用せずに Go でブール配列を効率的に初期化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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