Swift学习:4.可选类型

前端之家收集整理的这篇文章主要介绍了Swift学习:4.可选类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

可选类型

使用可选类型(optionals)来处理值可能缺失的情况。

下面的例子使用toInt@H_404_10@方法来尝试将一个String@H_404_10@转换成Int@H_404_10@:

let possibleNumber = "123"
let convertedNumber = possibleNumber.toInt()
// convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int"
因为 toInt@H_404_10@ 方法可能会失败,所以它返回一个 可选类型(optional) Int@H_404_10@ ,而不是一个 Int@H_404_10@ 。一个可选的 Int@H_404_10@ 被写作 Int?@H_404_10@ 而不是 Int@H_404_10@ 。问号暗示包含的值是可选类型,也就是说可能包含 Int@H_404_10@ 值也可能不包含值。(不能包含其他任何值比如 Bool@H_404_10@ 值或者 String@H_404_10@ 值。只能是 Int@H_404_10@ 或者什么都没有。)

if 语句以及强制解析

if convertedNumber != nil {
    println("\(possibleNumber) has an integer value of \(convertedNumber!)")
} else {
    println("\(possibleNumber) could not be converted to an integer")
}
// 输出 "123 has an integer value of 123"

可选绑定

if let actualNumber = possibleNumber.toInt() {
    println("\(possibleNumber) has an integer value of \(actualNumber)")
} else {
    println("\(possibleNumber) could not be converted to an integer")
}
// 输出 "123 has an integer value of 123"

隐式解析可选类型

let possibleString: String? = "An optional string."
println(possibleString!) // 需要惊叹号来获取
// 输出 "An optional string."

示例代码

@H_301_151@class Person {

@H_301_151@ var residence: Residence?

@H_301_151@}


@H_301_151@class Residence {

@H_301_151@ var numberOfRooms = 1

@H_301_151@}


@H_301_151@let john = Person()

if let roomCount = john.residence?.numberOfRooms {

println("John's residence has \(roomCount) room(s).")

@H_301_151@} else {

println("Unable to retrieve the number of rooms.")

@H_301_151@}

john.residence = Residence()

println("Unable to retrieve the number of rooms.")

@H_301_151@}

原文链接:https://www.f2er.com/swift/327184.html

猜你在找的Swift相关文章