我是新来的Dart,我希望有人能解释这个变量作用域警告。
当我使用以下语句时:
enum fruits {tomatoes, apples, oranges}
void main() {
for (var item in fruits.values) {
var color = 'red'; // Local variable 'color' declared
switch (item){
case fruits.apples:
break;
case fruits.tomatoes:
break;
default:
color = 'orange'; // Local variable 'color' used, analyzer doesn't see
break;}
print (color); // Local variable 'color' used, analyzer sees
}
}
代码分析器没有上述问题。但是,如果我注释掉打印语句// print (color);
,即使color
在switch
语句的默认情况下使用,我也会从分析器获得警告The value of the local variable 'color' isn't used.
。
为什么分析器看不到在default
的情况下的局部变量?
,因为分配变量颜色不考虑使用变量....例如,打印颜色考虑使用变量。当你在小部件或其他任何东西上使用颜色时,lint就会消失。