首先,我表示在看完Swift对这个概念的所有描述后,还是很模糊没有完全理解它的意义。
我的拙见是:
1. 对于所有属于对象的类型,已经有nil可以去判断了,而且nil相当好用啊(不觉得吗?)
2. 那么Optionals的诞生,应该只是填补了一些基础类型(如int, double)无法用nil去判断的空白
3. 如果说 let myValue: String? = "MyValue” 存在的意义是能够适时判断myValue值是否存在,那么 let myValue: String! = "MyValue”存在的意义又是什么? 仅仅是为了在调用的时候省去那一个烦人的‘!’号? 那我觉得也没必要为此专门创建一种写法吧?
4. 还有一点没想明白,
let convertedNumber = possibleNumber.toInt()
if convertedNumber {
println("\(convertedNumber!)")
}
这么用就必须得加‘!’
if let actualNumber = possibleNumber.toInt() {
println("\(actualNumber)")
}
这么用就可以不加‘!’, 这是什么逻辑??
convertedNumber, actualNumber的类型不是始终都是 optional Int 么。。。
我的拙见是:
1. 对于所有属于对象的类型,已经有nil可以去判断了,而且nil相当好用啊(不觉得吗?)
2. 那么Optionals的诞生,应该只是填补了一些基础类型(如int, double)无法用nil去判断的空白
3. 如果说 let myValue: String? = "MyValue” 存在的意义是能够适时判断myValue值是否存在,那么 let myValue: String! = "MyValue”存在的意义又是什么? 仅仅是为了在调用的时候省去那一个烦人的‘!’号? 那我觉得也没必要为此专门创建一种写法吧?
4. 还有一点没想明白,
let convertedNumber = possibleNumber.toInt()
if convertedNumber {
println("\(convertedNumber!)")
}
这么用就必须得加‘!’
if let actualNumber = possibleNumber.toInt() {
println("\(actualNumber)")
}
这么用就可以不加‘!’, 这是什么逻辑??
convertedNumber, actualNumber的类型不是始终都是 optional Int 么。。。