//场景:用户输入姓名,可能可以转换为数字,也可能不行
//letage = response.toInt()
var optionalNumber: Int? //默认初始化为nil
let response = "字符串"
let age = response.toInt()
//一个查找的方法,可能查不到值,那么返回值可以设置为可能值
func FindIndexOfString(str: String, array: [String])->Int? {
//enumerate:系统方法,遍历数组并返回Index和value
for (index,value) inenumerate(array) {
if value == str {
return index
}
}
return nil
}
var arr01 = ["AA","BB","CC"]
let index = FindIndexOfString("CC", arr01)
//可能值拆包:arr01[index!]--数组的索引要用一个确定的值,所以必须要强制解析:!
if index != nil {
println("找到了\(arr01[index!])")
}else{
println("找不到")
}
//可能值绑定:在检测的同时拆包(解析),如果解析出来包含值,则创建一个变量/常量,否则……
if let index1 =FindIndexOfString("CC",arr01) {
println("找到了\(arr01[index1])")
}else{
println("找不到")
}
//可能值链 + 可能值绑定
class Person {
var 住址: 住址类?
}
class 住址类 {
var 详细地址: 详细地址类?
}
class 详细地址类 {
var 房号: String?
var 街道: String?
var 小区: String?
}
let CC = Person()
let CC的住址 = 住址类()
let CC的详细地址 = 详细地址类()
CC.住址 = CC的住址
CC的住址.详细地址 = CC的详细地址
CC的详细地址.房号="403"
if let CC的房号 = CC.住址?.详细地址?.房号?.toInt() {
println("CC的房号 = \(CC的房号)")
}