let strName: String! = nil
let strFirstName: String? = nil
使用可选值和使用关联值时,我感到困惑。请帮帮我。
答案 0 :(得分:3)
用!声明变量!表示在声明时刻,它的值为零,但您确定在将其用于代码之前将其初始化。
宣布?意味着该变量为零,并且您不确定在应用程序执行的任何时刻它是否具有任何值。
答案 1 :(得分:1)
!
运算符告诉编译器该变量中存在值 DOES 。 ?
告诉编译器该类型的值 MIGHT 存在或可能 NIL 。使用!
表示Unwrapping
该变量。如果使用不当,它有自己崩溃应用程序的风险。如果您不确定打开optional
变量时是否存在值,请使用?
并将其解包,如下所示:
var someOptional: Int? = 100
if let anotherVar = someOptional{
print(anotherVar) //You have your unwrapped optional
}
else{
print(someOptional) //Nil if 100 is removed
}
现在尝试删除100.您会看到nil
。这就是期权的运作方式。