jsh*_*hah 2 optional-values swift
有什么区别:
var title:String? = "Title" //1
var title:String! = "Title" //2
var title:String = "Title" //3
Run Code Online (Sandbox Code Playgroud)
如果我在各方面设置标题并且我被迫以不同的方式展开每个变量,我该怎么说?
想想?并!喜欢一个可能有价值的盒子.

我推荐这篇文章.
可选的框可能有值或可能没有,并且可选框不会被解包.
var title:String? = "Title" //second and third picture
Run Code Online (Sandbox Code Playgroud)
您使用这样的展开值:
if let title = title {
//do sth with title, here is the same like let title: String = "Title"
}
Run Code Online (Sandbox Code Playgroud)可选框,可能有值或可能没有,并且可选框实际上是打开的.如果有值并且您访问该值,那就没问题(第二张图片,只需替换?为!),但如果没有值,则应用程序崩溃(第三张图片,只需替换?为!)
var title:String! = "Title"
Run Code Online (Sandbox Code Playgroud)该变量具有肯定的值,并且您无法分配给该值nil(因为它不是可选的).可选表示存在值或没有值(nil):
var title:String = "Title" //first picture
Run Code Online (Sandbox Code Playgroud)