import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
switchDemo()
}
func switchDemo() {
// option + click 是开发中最重要的组合键 (没有之一),可以实时查看变量的类型
let number = "11"
/**
1. 不需要 break
2. 不在局限在 对 int 的分支,可以对任意数据类型进行检测
3. 各个 case 之间,不会穿透,如果有多个值,使用 , 分隔
4. 定义变量,不需要使用 {} 分隔作用域
5. 在 swift 中,必须涵盖所有条件,每一个 case 至少包含一条语句
*/
switch number {
case "10", "11":
let name = "老王"
print("\(name) 好")
case "9": print("良")
default: break
// print("差")
}
}
/// guard - 是和 if let 刚好相反的指令
/// Swift 2.0 推出的语法
func demo3() {
let oName: String? = "张三"
let oAge: Int? = 20
guard let name = oName else {
print("name 为 nil")
return
}
guard let age = oAge else {
print("age 为 nil")
return
}
// 代码执行到此,name 和 age 一定有值
// 在实际开发中,复杂的代码在条件判断之后
// 使用 guard 会让嵌套层次少一层!
print("Hi \(name) --- \(age)")
}
/// if let
func demo2() {
let oName: String? = "张三"
let oAge: Int? = 20
if oName != nil && oAge != nil {
print("Mr" + oName! + "---" + String(oAge!))
}
// if let 可以设置数值,进入分支后,name 可以保证一定有值
if let name = oName {
print("Hi " + name)
}
// 多值的设置,使用 , 分隔
// 注意:if let 语句中不能使用 && || 条件
if let name = oName, age = oAge {
print("Hi " + name + "---" + String(age))
}
}
/// 三目 - 在 Swift 中,用的很多!
// if 语句,一不小心会写的丑疯了!
func demo1() {
let a = 2
a > 5 ? print("哈哈") : print("呵呵")
}
// 基本的 if
func demo() {
let x = 10
/**
1. 没有 ()
2. 必须要有 {}
在很多公司的开发规范中,都是禁止不使用 {} 的!
3. 条件判断,C 语言中有一个非零即真,Swift 中只有 true / false
*/
if x > 5 {
print("xxx")
}
if x > 20 {
print("大了")
} else {
print("小了")
}
}
}