"The operand can't be null",即使所采用方法的文档清楚地指定了可能的空返回?



我使用的是一个返回Future<String>的IO库。虽然是的,返回的类型是String而不是String?,但该库方法的文档明确指出,如果操作失败,将返回null(而不是抛出异常(。因此,我需要自己检查null,并自己处理抛出的异常。

然而,如果我检查返回值是否为null,Dart告诉我操作数不能为null,因此我不应该检查它

在这种情况下该怎么办?

正如评论中所讨论的,当使用尚未为Dart 2.12更新的安全性为空的遗留代码时,可以看到这个问题。

在Dart的早期版本(2.12之前(中,类型不必有尾随的?符号来表示值可能是null。例如,Future<String>可以很容易地用值null来完成。

为了避免这种情况,请确保所有依赖项都是空安全的。

最新更新