Go の If ステートメント内の変数スコープ
Go を使用する場合、if ステートメント内に変数を作成する必要がある状況に遭遇することがあります。ステートメントを作成し、その後そのステートメントの外で使用します。ただし、Go では厳密な変数スコープ ルールが適用され、異なるコード ブロック間での変数の作成と使用が禁止されています。
提供されたコードでは、if ステートメント内で new1 変数を作成できないことが課題となっています。そのサイズは if ステートメントの結果に依存するため、外部で宣言することは現実的ではない可能性があります。
この問題に対処するために、Go はシンプルで効果的なソリューションを提供します。 new1 変数を if ステートメントの外で宣言し、make を使用してステートメント内で初期化することができます。これにより、サイズを動的に決定し、if ステートメントの終了後に使用することができます。
変更されたコードは次のとおりです:
var new1 []string if len(array1) > len(array2) { new1 = make([]string, 0, len(array1)) // instructions ... } else { new1 = make([]string, 0, len(array2)) // other instructions ... } new2 := make([]string, 0, len(new1)) copy(new2, new1)
このアプローチでは、変数のスコープを保持しながら、変数のスコープを保持します。 if ステートメントの結果に関係なく、関数全体で使用されます。
以上がGo の「if」ステートメント内で作成した変数をその外部で使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。