数据类型后的问号(?)

时间:2014-06-03 07:31:20

标签: variables swift

这两个陈述使我感到困惑

var optionalString: String? = "Hello"

相反,我们可以写它

var optionalString: String = "Hello"

这两者之间的区别是什么?

我们也可以在没有可选值的情况下执行此操作。

var str: String = nil
str = "Hello"

请澄清。

3 个答案:

答案 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以指示该值   失踪。在要标记的值的类型后面写一个问号(?)   该值为可选。