- 判断对错
var name: String? = "Ray"
//var age: Int = nil // Invalid: nil can only be used with optional types
let distance: Float = 26.7
var middleName: String? = nil
- 可选值绑定方式实现函数
func divideIfWhole(_ value: Int, by divisor: Int) -> Int? {
if value % divisor == 0 {
return value / divisor
} else {
return nil
}
}
if let answer = divideIfWhole(10, by: 2) {
print("Yep, it divides \(answer) times.")
} else {
print("Not divisible :[.")
}
if let answer = divideIfWhole(10, by: 3) {
print("Yep, it divides \(answer) times.")
} else {
print("Not divisible :[.")
}
- Nil coalescing方式实现上面的函数
let answer1 = divideIfWhole(10, by: 2) ?? 0
print("It divides \(answer1) times.")
let answer2 = divideIfWhole(10, by: 3) ?? 0
print("It divides \(answer2) times.")
- 嵌套可选值
let number: Int??? = 10
// 1
print(number!!!)
// 2
if let number = number {
if let number = number {
if let number = number {
print(number)
}
}
}
// Better way of optionally binding without all the {}
if let n1 = number,
let n2 = n1,
let n3 = n2 {
print(n3)
}
// 3
func printNumber(_ number: Int???) {
guard let n1 = number, let n2 = n1, let n3 = n2 else {
return
}
print(n3)
}
printNumber(number)
客官,路过左下角小❤️❤️点下,谢谢啊:-D
网友评论