在Swift编程语言(Apple的书)中,我读过您可以通过两种方式创建可选变量:使用问号(?)或使用感叹号(!).
区别在于,当您使用(?)获取可选值时,每次需要值时都必须使用感叹号:
var str: String? = "Question mark?"
println(str!) // Exclamation mark needed
str = nil
Run Code Online (Sandbox Code Playgroud)
使用(!)时,您可以在没有后缀的情况下获取它:
var str: String! = "Exclamation mark!"
println(str) // No suffix needed
str = nil
Run Code Online (Sandbox Code Playgroud)
有什么区别,如果没有任何区别,为什么有2种方法?