if number == favoriteNumber { print("Yes, you are right!") } elseif number == hatedNumber { print("No, it's my most hated number!") } else { print("Please guess again!") }
switch-case 语句
1 2 3 4 5 6 7 8 9 10 11 12 13
let dateNumber =1 switch dateNumber { case1...5: print("It's working...") case6: print("Play the piano") case7: print("Have a rest!") // Swift要求 完全列举Exhaustive 必须包含全部可能 // 处理意外数值的默认情况 default default: print("Error!") }
4. 类型 Types
4.0 类型分类图:
整数型 Int
1 2
let userAge: Int=19 // userAge 为Int整型
浮点型 Double
1 2
let temperature: Double=24.6 // temperature 为Double浮点型
布尔型 Bool
1 2
var isClosed: Bool=false // isClosed 为Bool布尔型
字符串 String
1 2
var userName: String="TabYang" // userName 为String字符串
字符串插值 String Interpolation
1 2 3 4 5 6
var userAge: Int=19 var userName: String="TabYang" // Swift可使用"\(<变量名>)"来进行插值 var userInfo: String="\(userName) is \(userAge) years old." print(userInfo) // 输出 TabYang is 19 years old
类型推断 Type Inference
Swift可以根据开发者提供的数据,自动推断其类型
1 2 3
// Type Inference 类型推断 let userAge: Int = 19 // 此时userAge类型为Int let userID = 1 // 此时通过类型推断userID类型为Int
类型转换 Type Conversion
1 2 3 4
var userAge: Int=19 var userName: String="TabYang" // Swift 可通过 <类型名>(<变量名>) 完成类型转化 var userInfo = userName +"is "+String(userAge) +" years old."
// 闭包作为参数传递给函数,闭包类型为(Int, Int) -> Int) // 闭包作为参数相当于向函数参数列里传入了一个方法 funcperformCalculation(_operation: (Int, Int) -> Int) { let result = operation(1, 2) // 传入闭包的参数列 print("\(result)") } let addNumbers = {(a: Int, b: Int) -> Intin return a + b } performCalculation(addNumbers) // 普通闭包作为参数传递
// 闭包尾随表达法 // 当闭包是函数唯一的参数,可以去掉函数() performCalculation {(a: Int, b: Int) -> Intin return a + b }
// 闭包作为返回值 fun makeMultiplier(factor: Int) -> (Int) -> Int { return { number in return number * factor } } let multiplayByThree = makeMultiplier(factor: 3) print(multiplyByThree(4)) // 输出 12