在以下代码行中,anotherVariable
常量从右侧隐式继承String
类型而不是String?
var variable: String? = "hello"
if let anotherVariable = variable { // Unwrapping
// "anotherVariable" constant has a String type and its value is "hello"
}
答案 0 :(得分:2)
是的,这是optional unwrapping。在可选值上使用if let
时:
答案 1 :(得分:2)
if let
的意思是“展开”。 String?
的展开版本为String
。因此,如果string
获得任何值,它将是String
值,并且编译器知道这一点。
答案 2 :(得分:0)
基本上,Swift为您提供安全解包选项的约定。 If let
行基本上说:
有些人发现在if let
语句中使用相同的参数名称会让人感到困惑。我更喜欢这种方式,但将它命名为其他东西是完全可以接受的,例如:
if let unwrappedExample = example {
... //unwrappedExample now has the unwrapped example value (if not nil)
}
如果你是初学者,处理选项可能是一次新的冒险,但它们很快就会成为你的第二天性!希望这有帮助!