有没有一种方法可以简化这个条件子句:
if (_username != null &&_username.isNotEmpty && _pass != null && _pass.isNotEmpty){
connectionBloc.dispatch(GetUserInfoEventImpl(_username, _pass));
}使用空值感知运算符?
我试过了:
if (_username?.isNotEmpty?? false && _pass?.isNotEmpty?? false){
connectionBloc.dispatch(GetUserInfoEventImpl(_username, _pass));
}但我认为有一个问题,因为Android Studio说右边的条件不能达到,这不是真的。
发布于 2019-09-04 12:36:31
对于null感知的访问,您必须显式地将result与true或false进行比较:
if (_username?.isNotEmpty == true && _pass?.isNotEmpty == true) {
...
}至于您的变体,代码没有括号,因为Null coalescence operator的优先级最低:
if ((_username?.isNotEmpty ?? false) && (_pass?.isNotEmpty ?? false)) {
...
}发布于 2019-09-04 11:38:16
你可以这样做
String test = null;
bool v = _stringIsNotEmptyOrNull(test);
print("Boolean value is $v");
test = "";
bool v1 = _stringIsNotEmptyOrNull(test);
print("Boolean value is $v1");
test = "test";
bool v2 = _stringIsNotEmptyOrNull(test);
print("Boolean value is $v2");检查函数可以编写为
bool _stringIsNotEmptyOrNull(String value) {
return value?.isNotEmpty ?? false;
}或
bool _stringIsNotEmptyOrNull(String value) => value?.isNotEmpty ?? false;https://stackoverflow.com/questions/57781011
复制相似问题