如何解决相当于 Dart 中 Swift 的 if let 和 guard let
刚开始使用原生 iOS 背景的 Flutter,所以我有一个关于 Dart beta null 安全性的快速问题。
所以在 Swift 中,因为他们和 Kotlin 一样从一开始就有空安全的想法,所以我非常喜欢该语言的两个特性是 if let
和 guard let
。这两个使使用可选值变得更加容易。我不确定 Dart 的测试版是否有类似的东西。
谢谢
解决方法
我不是 Swift 专家,但 Dart 会使用空检查来自动提升类型,我认为这主要完成了 if let
和 guard let
的工作。
例如:
String? x = possiblyReturnsNull();
if (x != null) {
// All code within this block treats `x` as non-nullable.
}
// All code outside the block continues to treat `x` as nullable.
注意 that promotion won't be performed on non-local variables,因此对于那些您需要明确引入本地引用的人。 (There is a language proposal 提供一种机制,允许更好的机制添加本地引用而不污染外部作用域。)
,我将继续讨论这个问题,因为我也来自 Swift 并且非常喜欢使用guard。加上@jamesdlin 所说的,反之亦然。
因此您可以在功能上执行 Swift 防护语句:
String? x = possiblyReturnsNull();
if (x == null) return whatever; // This works like Swift's guard
// All code outside the block now treats `x` as NON-nullable.
,
在 Dart 中检查空值安全性:
value ?? 0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。