005--swift基础语法(逻辑分支)

xiaoxiao2021-02-28  130

简单的分支 if语句

// MARK: - 简单的分支 func demo(){ let x = 10 /** 1. 条件不需要() 2. 语句必须有{} --很多公司的代码规范中,禁止不使用{} */ if x > 5{ print("大了") }else{ // Condition always evaluates to true // 永远不会执行 - 编译器编译的时候,会做语法检查 print("小了"); } }

三目的语法

func demo1(){ let x = 20 //三目的语法和OC的基本是一样的 x > 5 ? print("大了") : print("小了") //分享,有印象就行 //`()`表示空执行 x > 5 ? print("大了") : () } func demo2(){ let x: Int? = 10 let y: Int? = 200 //强行解包有风险 print(x! + y!) }

MARK: - ??

func demo3(x:Int?,y:Int?) { /** ?? 是一个简单的三目 - 如果有值 使用值 - 如果没有值,使用??后面的值代替 */ print((x ?? 0) + (y ?? 0)) let name:String? = "老王" print((name ?? "")+"你好") //??优先级“低” 在使用的时候最好加上() print(name ?? ""+"你好") }

if let/var 连用语法

//MARK: -if let/var 连用语法,目的是判断值 func demo4(){ let oName:String? = "老王" let oAge:Int? = 10 if oName != nil && oAge != nil{ print(oName! + String(oAge!)) } // if let 连用,判断对象的值是否为nil {}内一定有值,可以直接使用,不需要解包 // if var 连用,{}可以对值进行修改 if let name = oName, let age = oAge{ //进入分支以后,name和age一定有值,不需要解包 //name 和 age 的作用域仅在{中} print(name + String(age)) } }

guard let 和 if let 刚好相反

//MARK: - guard 守卫 / 守护 //guard let 和 if let 刚好相反 func demo5(){ let oName:String? = "老王" let oAge:Int? = 10 //guard let 守护一定有值,如果没有直接返回 guard let name = oName, let age = oAge else { print("姓名或者年龄为 nil") return } // 代码执行至此,name 和 age 一定有值! // 通常判断是否有值之后,会做具体的逻辑实现,通常代码多! // 如果用 if let 凭空多了一层分支,guard是降低分支层次的办法 // guard 的语法是 Swift2.0 推出的 // guard 是Swift 2.0推出来的 print(name + String(age)) }

guard let & if let 使用技巧

//guard let & if let 使用技巧 func demo6(name: String?,age: Int?){ if let name = name , let age = age { //非空的name和age仅在花括号中有效 print(name + String(age)) } //使用同名额变量接收值,在后续使用的都是非空值,不需要解包 //好处,可以避免起名字的烦恼 guard let name = name,let age = age else { print("姓名或者年龄为nil") return } print(name + String(age)) }
转载请注明原文地址: https://www.6miu.com/read-48672.html

最新回复(0)