Dart null 安全条件语句?
Dart null safety conditional statement?
所以我有一个 class Cache
有一个方法 compare
那 returns 一个 bool
.
我有一个可以为 null 的 class 实例。
Cache? recent;
我想在recent
为not null
且compare
[=41=时执行一段代码] returns false
如果没有空安全,我就完成了
if(recent!=null && !recent.compare()){
//code
}
如何在启用空安全的情况下做同样的事情?
当我尝试上面的空安全时,我得到
The method 'compare' can't be unconditionally invoked because the receiver can be 'null'.
Try making the call conditional (using '?.') or adding a null check to the target ('!')
当我在下面尝试时
if(!recent?.compare()){
//code
}
它给了我
A nullable expression can't be used as a condition.
Try checking that the value isn't 'null' before using it as a condition.
您可以通过
解决这个问题
使用局部变量(推荐)
var r = recent; // Local variable
if (r != null && !r.compare()) {
// ...
}
使用 Bang 运算符 (!
)
if (!recent!.compare()) {
// ...
}
所以我有一个 class Cache
有一个方法 compare
那 returns 一个 bool
.
我有一个可以为 null 的 class 实例。
Cache? recent;
我想在recent
为not null
且compare
[=41=时执行一段代码] returns false
如果没有空安全,我就完成了
if(recent!=null && !recent.compare()){
//code
}
如何在启用空安全的情况下做同样的事情?
当我尝试上面的空安全时,我得到
The method 'compare' can't be unconditionally invoked because the receiver can be 'null'. Try making the call conditional (using '?.') or adding a null check to the target ('!')
当我在下面尝试时
if(!recent?.compare()){
//code
}
它给了我
A nullable expression can't be used as a condition. Try checking that the value isn't 'null' before using it as a condition.
您可以通过
解决这个问题使用局部变量(推荐)
var r = recent; // Local variable if (r != null && !r.compare()) { // ... }
使用 Bang 运算符 (
!
)if (!recent!.compare()) { // ... }