在Swift编程中,我发现对象带有一些问号。
var window: UIWindow?
有人可以解释它的用法吗?
您可以使用if和let一起使用可能缺少的值。这些值表示为optionals。一个optional 值或者包含值或含有nil指示该值缺失。在值的类型后写一个问号(?),以将该值标记为optional。 如果可选值为nil,则条件为,false并且括号中的代码将被跳过。否则,将解压缩可选值,并将其分配给之后的常量let,这将使解压缩后的值在代码块内可用。
您可以使用if和let一起使用可能缺少的值。这些值表示为optionals。一个optional 值或者包含值或含有nil指示该值缺失。在值的类型后写一个问号(?),以将该值标记为optional。
if
let
optionals
optional
nil
如果可选值为nil,则条件为,false并且括号中的代码将被跳过。否则,将解压缩可选值,并将其分配给之后的常量let,这将使解压缩后的值在代码块内可用。
false
摘录自:苹果公司“ The Swift Programming Language”。iBooks。https://itun.es/pk/jEUH0.l
例如:
var optionalString: String? = "Hello" optionalString == nil var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName { greeting = "Hello, \(name)" }
在此代码中,输出为Hello! John Appleseed。如果我们将的值设置optionalName为nil。在if有条件的结果将是false和里面的代码if会得到跳过。
Hello! John Appleseed
optionalName