func demo1(num: Int) -> () {
if num > 10 {
print("大 \(num)") }
else {
print("小 \(num)") }
}
三目運算
?? 是一個簡單的三目運算
如果有值,就是原來的值
如果沒有值,就用 ?? 后面的值代替 一定要注意括號 '( )' 的使用
if let / var
let oName: String? = "孫悟空"
let oAge: Int? = 100
//if let 連用,判斷對象的值是否為 nil ,{}內(nèi)有值,不需要解包
//if var 連用,可在 {} 內(nèi)對值進行修改
if let name = oName,
let age = oAge {
//進入分支后, name 和 age 一定有值,不需要進行解包
print(name + String(age))
// name 和 age 的作用域只在 {}內(nèi)
}else{
print("name 或 age 沒有值")
}
guard let
正好和 if let 相反,是蘋果在 Swift 2.0 之后推出的
在程序編寫時,條件檢測之后的代碼相對是比較復(fù)雜的
使用 guard 的好處
能夠判斷每一個值
在真正的代碼邏輯部分,省略了一層嵌套
let oName: String? = "孫悟空"
let oAge: Int? = 100
guard let name = oName,
let age = oAge else {
print("name 或者 age 為nil")
}
print(name + String(age))
switch
switch不再局限于整數(shù)
switch可以針對任意數(shù)據(jù)類型進行判斷
不再需要 break
每一個 case后面必須有可以執(zhí)行的語句
要保證處理所有可能的情況,不然編譯器直接報錯,不處理的條件可以放在 default分支中
每一個 case中定義的變量僅在當(dāng)前 case中有效,而 OC 中需要使用 {}
let score = "優(yōu)"
switch score {
case "優(yōu)":
let name = "學(xué)生"
print(name + "80~100分")
case "良": print("70~80分")
case "中": print("60~70分")
case "差": print("不及格")
default: break
}