首先先让我们来了解下Swift中“nil”的含义:在OC中nil指的是一个空对象,它指向一个不存在的对象的指针;而在Swift中它表示的是一个不确定的值,含义是“值缺失”,"nil"只可以用于optionals类型的,比如下面的代码(结果在注释里):
var oneString = "111"
//Error: Cannot assign a value of type 'nil' to a value of type 'String'
oneString = nil
//Error: Binary operator '==' cannot be applied to operands of type 'String' and 'nil'
if oneString == nil {
println(oneString)
}
可以看到对oneString赋值nil和对nil的比较都会报错,那应该怎么用呢,这就涉及到了optionals(可选)类型:
首先来看一个String方法的API:它对String类型扩展了一个将String转换为Int?的方法:
extension String {
func toInt() -> Int?
}
注意:Int后面跟了一个"?",
Int?表示:返回值是一个可选类型的,如果有值就是Int型的,如果没有值,就是“nil”。让我对这个函数测试一下: