ホームページ >バックエンド開発 >Golang >なぜ「if」はこの変数のスコープを変更するのでしょうか?

なぜ「if」はこの変数のスコープを変更するのでしょうか?

WBOY
WBOY転載
2024-02-05 23:57:11446ブラウズ

为什么 `if` 改变了这个变量的范围

質問内容

こんな事があったら

ケース 1:

リーリー

ケース 2:

リーリー

私の質問は、なぜこの形式で使用すると変数 str のスコープが変わるのかということです

if str, err := m.something(); err != nil {
        return err
    }

fmt.println(str)  //str is undefined variable

正解


ifステートメント(およびforswitch)は次のとおりです。 暗黙的ブロック、言語仕様によれば、:=は宣言と代入に使用されます。 strif の後で使用できるようにするには、最初に変数を宣言してから、if ステートメントで値を代入します。 リーリー

以上がなぜ「if」はこの変数のスコープを変更するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。