【发布时间】:2018-06-09 21:56:43
【问题描述】:
如果我想让变量成为可选变量,我可以这样做:
var exampleString: String? = nil
或
var exampleString: String? = "This is a string"
是否可以声明一个可选值而不分配 String、Int、Bool 等类型?
类似的东西(不返回错误):
var exampleVar? = nil
我没有用例说明我为什么要这样做,但我正在努力更好地理解可选项。我刚刚通读了 Swift 文档中的 Optionals 部分。 如果可以做到这一点,这样做有什么好处吗?
另外,为什么我不想在任何地方都使用隐式展开的选项?这样做有什么缺点? Apple 的 Swift 文档提到,如果您打算将变量重新分配为 nil,则不应这样做。为什么?
非常感谢你们的帮助!
【问题讨论】:
-
隐式展开的可选项如果在它们为 nil 时可能被使用,那么它们是危险的。结果将是运行时错误,也就是崩溃。如果您的代码逻辑保证它们在使用时都是有效的,那么它们可能是安全的。 IBOutlets 使用时有效。
标签: swift