Dart中switch语句里的下划线(_)代表什么含义?
Dart中switch语句里的下划线(_)代表什么含义?
嗨,我来给你讲清楚这个下划线的作用!在Dart的switch表达式里,_是个通配符模式,说白了就是个「兜底的万能匹配项」。
拿你提到的这段代码举例:
var isPrimary = switch (color) { Color.red || Color.yellow || Color.blue => true, _ => false, };
前面的case专门匹配Color.red、Color.yellow、Color.blue这三个枚举值,只要color是这三个里的任意一个,就会返回true。而后面的_会接住所有前面case没覆盖到的其他情况——不管color是枚举里的其他值,还是(如果类型允许的话)别的什么值,都会走进这个分支返回false。
另外补充两个小细节:
- 这个通配符特别实用,尤其是处理枚举类型的时候:如果你的switch表达式没有覆盖枚举的所有可能值,编译器会报错,加个
_就能完美解决这个问题,确保所有情况都被处理到 - 其实
_在Dart里是个多功能语法:除了switch表达式的兜底匹配,还能用来忽略不需要的变量(比如解构的时候var (_, age) = userInfo;,这里的_就表示我不需要这个位置的值)




