guard 的使用
1.guard 是 Swift2.0新增的语法
2.它与 if语句非常类似,它设计的目的是提高程序的可读性
3.guard 语句必须带有 else语句,它的语法如下:
3.1.当条件表达式为 true的时候跳过 else 语句中的内容,执行语句组内容
3.2.条件表达式为 false的时候执行 else语句中的内容,跳转语句一般是 return,break,continue和 throw
guard 用法举例
以下举例说明其中的区别:
需求:判断一个用户名是否是联通号,开发中用户名验证的过程,分以下几步:
1,用户名不能为 null;
2,用户名必须是手机号码
3,用户名是 186开头的手机号
if ... else 示例
//: Playground - noun: a place where people can play
import UIKit
func isUserName(username : String){
    if username != nil {
        
        if isPhoneNumber(username: username) {
            if isUnicom(username: username){
                print("手机号是联通号码!")
            }else{
                print("手机号不是联通号码!")
            }
        }else{
            print("用户名不是手机号!")
        }
    }else{
        print("用户名为空!")
    }
}
func  isPhoneNumber (username : String) -> Bool{
    //判断是否是手机号码,代码略
    return true
}
func isUnicom(username :String) -> Bool{
    //判断是否是联通号码,代码略
    return true
}
isUserName(username : "18600000000")
 
 guard 用法示例
//guard 用法比较条理,代码可读性较强
func isUserNameGuard( username : String) -> Void{
    
    guard username != nil else {
        print("用户名为空!")
        return
    }
    
    guard isPhoneNumber(username : username) else {
        print("用户名不是手机号!")
        return
    }
    
    guard isUnicom(username: username) else {
         print("手机号不是联通号码!")
        return
    }
    
    print("手机号是联通号码!")
}
func  isPhoneNumber (username : String) -> Bool{
    //判断是否是手机号码,代码略
    return true
}
func isUnicom(username :String) -> Bool{
    //判断是否是联通号码,代码略
    return true
}
isUserNameGuard(username: "18600000000")
  通过对比,可以看出,使用 guard 可以增进代码的阅读性。