Dart null 安全条件语句?

cod*_*_86 5 dart dart-null-safety

所以我有一个类Cache,它有compare一个返回bool.

我有一个可为空的类的实例。

Cache? recent;
Run Code Online (Sandbox Code Playgroud)

recent我想在isnot nullcomparereturn时执行一段代码false

如果没有零安全性,我就会这样做

if(recent!=null && !recent.compare()){
  //code
}
Run Code Online (Sandbox Code Playgroud)

如何在启用空安全的情况下执行相同的操作?

当我尝试上面的零安全性时,我得到

无法无条件调用“compare”方法,因为接收者可能为“null”。尝试使调用有条件(使用“?。”)或向目标添加空检查(“!”)

当我尝试下面时

if(!recent?.compare()){
  //code
}
Run Code Online (Sandbox Code Playgroud)

它给了我

可为空的表达式不能用作条件。在将其用作条件之前,请尝试检查该值是否不为“null”。

Cop*_*oad 5

您可以通过以下方式解决这个问题

  • 或者:`if(!(最近?.compare() ?? true))` (2认同)