[Flutter/Dart]同じメソッド内での変数の重複宣言チェックはif文・switch文等で包むとやってくれないトラップあり

このページには広告が含まれる場合があります。

 

Flutterアプリを作るためのプログラミング言語であるDartでは、同じメソッド(スコープ)内で、同じ名前の変数(インスタンス・オブジェクト)を宣言しようとすると、

The name ‘変数名’ is already defined.

というエラーを出して重複宣言チェックをしてくれます。

同じメソッド内で同じ名前の変数を宣言すると「The name 'response' is already defined」のエラーが出る

ところが、同じメソッド内でもif文やswitch文などの「{}」のある句で包んでしまうと、この重複チェックをしてくれなくなります。

switch文の中で同じ名前の変数を宣言すると、重複のチェックが働かない

その場合、同じメソッド内で同じ名前の変数(インスタンス・オブジェクト)であるにも関わらず、別物扱いとされてしまうので注意が必要です。

switch文の中の「response」が、33行目で宣言した変数とは別ものとして扱われてしまう

(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)

こんな記事も読まれています

TOP