这两个陈述使我感到困惑
var optionalString: String? = "Hello"
相反,我们可以写它
var optionalString: String = "Hello"
这两者之间的区别是什么?
我们也可以在没有可选值的情况下执行此操作。
var str: String = nil
str = "Hello"
请澄清。
答案 0 :(得分:11)
问号表示它可能包含值,或根本没有值。没有它,它永远不会是nil
。
var str: String = "Hello"
str = nil // Error
答案 1 :(得分:5)
问号(?)标记可选值。在Swift中,只有可选值可能为nil
。
此功能的优点是无需针对所有非可选值检查nil
。
答案 2 :(得分:2)
问号(?)是标记值可选的方式,
var optionalString: String? = "Hello"
mean optionalString可以包含一个值,也可以是nil。
以下是来自Swift编程语言的书。
在if语句中,条件必须是布尔表达式
您可以使用if和let一起使用可能的值 失踪。这些值表示为选项。可选值 要么包含值,要么包含nil以指示该值 失踪。在要标记的值的类型后面写一个问号(?) 该值为可选。