【发布时间】:2021-06-09 12:26:54
【问题描述】:
我找不到像我们在 swift 中那样安全地解开可选变量的方法
var myString: String?
if let myString = myString {
print(myString) // myString is a string
}
或者在 Kotlin 中
var myString: String?
if (myString != null) {
print(myString) // myString is not null
}
// or
myString?.let {
print(it) // myString is not null
}
在 Dart 中,我必须执行以下操作,这看起来不太好:
String? myString;
if (myString != null) {
print(myString); // myString still an optional
print(myString!); // myString is now a String! (because of the force unwrap)
}
有没有办法像其他空安全语言一样以干净的方式安全地展开?或者我们必须总是在空检查后强制解包变量?
【问题讨论】:
-
你确定你做的 Dart 例子吗?您是如何确定在您的
if之后 Dart 仍将myString视为可为空的? -
@julemand101 我的意思是,即使我们知道它不是,分析器仍然将其视为可选字符串。
标签: dart