【发布时间】:2014-06-06 14:09:43
【问题描述】:
在 The Swift Programming Language(Apple 书籍)中,我读到您可以通过两种方式创建可选变量:使用问号 (?) 或使用感叹号 (!) .
不同之处在于,当您使用 (?) 获取可选值时,每次需要该值时都必须使用感叹号:
var str: String? = "Question mark?"
println(str!) // Exclamation mark needed
str = nil
虽然带有 (!),但您可以不带后缀获得它:
var str: String! = "Exclamation mark!"
println(str) // No suffix needed
str = nil
有什么区别,如果根本没有区别,为什么有两种方法?
【问题讨论】:
-
你应该修正问题的标题 ;)
-
嗯,这不仅仅是关于字符串。它是关于每个非原始数据类型变量的。我删除了字符串,以便可以将问题作为通用问题。