【iOS开发--Swift语法】gard 的具体使用

写在前面:其实这部分非常非常的基础,也有很多完整的博客,记录学习过程罢了,同时也可以帮助自己充分理解。

一、定义

顾名思义,guard是作为保卫作用而存在的,是 swift 2.0推出的新的判断语句的用法。guard语句和if语句类似,都是根据关键字之后的表达式的布尔值决定下一步执行什么。

👆图: 若满足,则执行下一步操作;若不满足要求,那么执行 else语句 。

二、作用(与 if 相比)

1.guard语句只有一个代码块,而if语句可有多个代码块。(如 if 、else if、 else)

2.guard将不符合条件的处理事件前置,以免程序猿在开发中有遗漏的情况出现。

3.guard还可以减少条件语句中的嵌套数量「黄金大道」,提高代码可读性。

💁‍♀️补充一点点相关:在《禅与Objective-C编程艺术》一书中,有「黄金大道」一词的概念👇

最近在开发中发现,有些情况不使用嵌套 if 确实没有更好的办法,注释辅助提高代码可读性,优先满足需求其次追求代码优雅。具体使用:

三、使用场景

场景一:针对业务逻辑,减少if嵌套

// 电影院检票的例子:

struct Ticket
{
    var movieName:String//该场电影名字
    var TimeValid:Bool = true//电影票有效
}

func checkTicket(ticket:Ticket?,currentMovieName:String)
{

    guard let _ = ticket,ticket?.movieName == currentMovieName else {
        print("非此场电影")
        return
    }
    guard ticket?.TimeValid else {
        print("该票已过期")
        return
    }

    //TODO:
    print("可以看电影了")
}

场景二:一般用于强制解包

// 1.除数不能为0,所以我们必须保证model.bestScore!=0

guard model.bestScore != 0 else { return }

let Score = model.Score / model.bestScore


// 2.url不能为空

guard let url = URL(string: urlString) else { return }  

注意事项: 

  • 不要在 guard 的 else 语句中放入复杂代码
  • 使用guard是为了提高代码可读性,如果嵌套的 if 更容易理解,则没必要使用 guard

学习参考:

Swift学习笔记:guard 和 if 的用法及区别

Swift guard 和 if的使用注意事项

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值