如何在Dart中用一行代码实现变量非空时的条件执行?
Dart 一行代码实现非空变量执行操作
在Dart里,要实现「仅当变量不为空时执行操作」的逻辑,不用写冗长的if判断,一行代码就能搞定。下面结合示例对比两种写法:
void main() { int? i; // 不确定该变量是否为空 // 变量为空时执行操作:繁琐写法 if (i == null) { print("变量为空"); } // 变量为空时执行操作:一行写法 i ?? print("变量为空"); // 变量不为空时执行操作:繁琐写法 if (i != null) { print("变量不为空"); } // 变量不为空时执行操作:一行写法(推荐) i?.run(() => print("变量不为空")); // 另一种等价的一行写法 i != null ? print("变量不为空") : null; }
写法说明
?.run()写法:?.是Dart的空安全访问操作符,当i不为空时,会执行run方法内的回调逻辑;如果i为空,整个表达式直接返回null,不会执行回调。这种写法更符合Dart空安全的设计风格,可读性也更强。三元运算符
?:写法:
明确判断i是否非空,满足条件时执行目标操作,不满足时返回null,逻辑直白,也能实现一行代码的需求。
内容的提问来源于stack exchange,提问作者Nerdy Bunz
相关产品推荐
相关产品推荐

