首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Dart -如何使用NullAware运算符简化IF条件

Dart -如何使用NullAware运算符简化IF条件
EN

Stack Overflow用户
提问于 2019-09-04 11:13:51
回答 2查看 221关注 0票数 2

有没有一种方法可以简化这个条件子句:

代码语言:javascript
复制
if (_username != null &&_username.isNotEmpty  && _pass != null && _pass.isNotEmpty){
      connectionBloc.dispatch(GetUserInfoEventImpl(_username, _pass));
    }

使用空值感知运算符?

我试过了:

代码语言:javascript
复制
if (_username?.isNotEmpty?? false && _pass?.isNotEmpty?? false){
      connectionBloc.dispatch(GetUserInfoEventImpl(_username, _pass));
    }

但我认为有一个问题,因为Android Studio说右边的条件不能达到,这不是真的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-04 12:36:31

对于null感知的访问,您必须显式地将result与true或false进行比较:

代码语言:javascript
复制
  if (_username?.isNotEmpty == true && _pass?.isNotEmpty == true) {
    ...
  }

至于您的变体,代码没有括号,因为Null coalescence operator的优先级最低:

代码语言:javascript
复制
  if ((_username?.isNotEmpty ?? false) && (_pass?.isNotEmpty ?? false)) {
    ...
  }
票数 3
EN

Stack Overflow用户

发布于 2019-09-04 11:38:16

你可以这样做

代码语言:javascript
复制
     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");

检查函数可以编写为

代码语言:javascript
复制
bool _stringIsNotEmptyOrNull(String value) {
return value?.isNotEmpty ?? false;
}

代码语言:javascript
复制
bool _stringIsNotEmptyOrNull(String value) => value?.isNotEmpty ?? false;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57781011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档