有没有一种方法可以简化此条件子句:
if (_username != null &&_username.isNotEmpty && _pass != null && _pass.isNotEmpty){
connectionBloc.dispatch(GetUserInfoEventImpl(_username, _pass));
}
使用Null-Aware运算符?
我试过了:
if (_username?.isNotEmpty?? false && _pass?.isNotEmpty?? false){
connectionBloc.dispatch(GetUserInfoEventImpl(_username, _pass));
}
但是我认为这是有问题的,因为Android Studio指出无法达到右侧的条件,这是不正确的。
最佳答案
使用null感知访问,您必须将结果显式比较true或false:
if (_username?.isNotEmpty == true && _pass?.isNotEmpty == true) {
...
}
至于您的变体,该代码没有括号,因为
Null coalescence operator
的优先级最低: if ((_username?.isNotEmpty ?? false) && (_pass?.isNotEmpty ?? false)) {
...
}
关于flutter - Dart-如何使用NullAware运算符简化IF条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57781011/