Flutter 相当于飞镖的if-let和guard-let

Flutter 相当于飞镖的if-let和guard-let,flutter,dart,dart-null-safety,Flutter,Dart,Dart Null Safety,刚开始使用本机iOS背景的Flitter,所以我有一个关于Dart测试版空安全性的快速问题 所以在Swift中,因为他们从一开始就有空安全的想法,就像Kotlin一样,我非常喜欢该语言的两个特性是if let和guard let。这两个选项使使用可选值变得更加容易。我不确定Dart的测试版是否有类似的东西 感谢检查Dart中的空安全: value ?? 0 我不是Swift方面的专家,但Dart将使用空检查来自动升级类型,我认为这主要完成if let和guard let的工作 例如: 字符串?

刚开始使用本机iOS背景的Flitter,所以我有一个关于Dart测试版空安全性的快速问题

所以在Swift中,因为他们从一开始就有空安全的想法,就像Kotlin一样,我非常喜欢该语言的两个特性是
if let
guard let
。这两个选项使使用可选值变得更加容易。我不确定Dart的测试版是否有类似的东西


感谢检查Dart中的空安全:

value ?? 0

我不是Swift方面的专家,但Dart将使用空检查来自动升级类型,我认为这主要完成
if let
guard let
的工作

例如:

字符串?x=可能的ReturnSnall();
如果(x!=null){
//此块中的所有代码都将'x'视为不可为空。
}
//块之外的所有代码继续将'x'视为可为空。

注意,对于那些需要显式引入本地引用的对象。(提供一种机制,允许更好的机制在不污染外部范围的情况下添加本地引用。)

我将对此进行深入讨论,因为我也是来自Swift,并且非常喜欢使用guard。加之@jamesdlin所说的,情况也恰恰相反

所以你可以在功能上做一个快速的守卫声明:

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.

不,我的意思是使用
if let
在代码块中有一个新的非空值,而
guard let
则在函数体的其余部分有一个非空值。我们可以在Dart中检查值是否为空,但在代码中,它仍然被视为可空。
value | | 0
毫无意义,甚至不是合法的Dart。sry这是一个打字错误,它的双重问题标记非本地的东西解释道,我想知道为什么它在某些情况下有效,而在某些情况下无效。谢谢