ホームページ >バックエンド開発 >Golang >Go の条件付き `if` ステートメント内で変数を適切に宣言して使用する方法

Go の条件付き `if` ステートメント内で変数を適切に宣言して使用する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-29 06:44:13894ブラウズ

How to Properly Declare and Use Variables Within Go's Conditional `if` Statements?

Go の条件文内の変数スコープ

Go で、特に条件付き if 文内で変数スコープの微妙な違いをナビゲートする場合、次のようになります。変数を利用するときにステートメント内で変数を定義できないことに遭遇して困惑する

次の場合を考えてみましょう:

if len(array1) > len(array2) {
    new1 := make([]string, 0, len(array1))
    // Use new1...
} else {
    new1 := make([]string, 0, len(array2))
    // Use new1...
}

if ブロック内で new1 を宣言できないため、このコードではエラーが発生します。ただし、ブロックの前に作成すると、そのサイズが比較の結果に依存するため問題が発生します。

解決策

最適な回避策は、if の前に new1 を宣言することです。ステートメント内で make をブロックして利用します:

var new1 []string

if len(array1) > len(array2) {
    new1 = make([]string, 0, len(array1))
    // Use new1...
} else {
    new1 = make([]string, 0, len(array2))
    // Use new1...
}

これにより、条件付き結果に基づいたサイズで new1 を作成できます。 if ブロックの外側でアクセシビリティを維持します。

以上がGo の条件付き `if` ステートメント内で変数を適切に宣言して使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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