IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【iOS开发--Swift语法】gard 的具体使用 -> 正文阅读

[移动开发]【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的使用注意事项

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 02:07:57  更:2022-09-15 02:08:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 5:53:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码