guard let的意思与if let的意思是一样的,都是针对于可选类型进行解包,使用guard let可以是代码更加清晰易读。
例如

let dictionary: Dictionary<String, Any>? = ["data": ["book" : ["id" : "1"]]]
if let dict = dictionary {if let data = dict["data"] as? Dictionary<String, Any> {if let book = data["book"] as? Dictionary<String, Any> {if let id = book["id"] as? String {print(id)}}}
}

使用guard let与if的条件是一样的,只是需要加上else return,这样使用便不会嵌套很多if层,看起来更加直观。

let dictionary: Dictionary<String, Any>? = ["data": ["book" : ["id" : "1"]]]
guard let dict = dictionary else { return }
guard let data = dict["data"] as? Dictionary<String, Any> else { return }
guard let book = data["book"] as? Dictionary<String, Any> else { return }
guard let id = book["id"] as?String else { return }
print(id)

Swift guard let 的使用相关推荐

  1. swift_038(Swift之guard关键字(守护))

    Swift - guard关键字(守护) guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么.但与if语句不同的是,guard语句只会有一个代码块,不像if语句可 ...

  2. swift可选类型_Swift可选

    swift可选类型 Swift Optional is a very important underlying concept in Swift programming. Optional is so ...

  3. Metal日记:使用步骤指南

    本文参考资料: juejin.im/post/5b1e8f- xiaozhuanlan.com/topic/04598- developer.apple.com/videos/play- github ...

  4. Metal 执行 GPU 命令的流程

    概述 阅读完本文,你将了解 Metal 是如何在 GPU 上执行命令的. 让 GPU 来执行任务是通过发送命令来实现的. 该命令可以执行绘图.并行计算或资源管理相关的操作工作. Metal 应用程序和 ...

  5. Swift的Guard语句

    最开始在Apple的Platform State of the Union看见swift的guard语句的时候,我当时不太理解以后会有什么理由能用到它.这个语句的介绍如下: 与if语句相同的是,gua ...

  6. Swift中 !和 ?的区别及使用与Swift的Guard语句

    1.swift中的!和?到底是什么? ?和!其实分别是swift语言中的一种可选类型(Optional)操作的语法糖. 1.1可选类型是个什么东西? swift中可以声明一个没有初始值的属性,swif ...

  7. Swift学习之使用guard的好处

    guard guard是 swift 2.0推出的新的判断语句的用法. 与if语句相同的是,guard也是基于一个表达式的布尔值去判断一段代码是否该被执行. 与if语句不同的是,guard只有在条件不 ...

  8. Swift @available #available guard

    Swift 2.0 中,引入了可用性的概念.对于函数,类,协议等,可以使用@available声明这些类型的生命周期依赖于特定的平台和操作系统版本.而#available用在判断语句中(if, gua ...

  9. Swift中NSRange和Range的转换

    最近项目再使用swift重构,遇到Range和NSRange转换的问题,这里记录下: 因为要使用NSRange,所以有了下面这段代码,将String转换为NSString后调用 range(of se ...

  10. swift中单例的创建及销毁

    最近项目重构时使用了oc和swift的混编,遇到了关于单例的创建及销毁,这里记录一下 //创建单例private static var _sharedInstance: ViewController? ...

最新文章

  1. 诺依曼原理中计算机由运算器,冯诺依曼原理与计算机的基本组成
  2. 《众妙之门——Web用户体验设计与可用性测试》一第2章 在网页设计中通过测量数据优化情感投入2.1 情感应答和行为应答的关系...
  3. 集合-2(Set(HashSet、TreeSet、LinkedHashSet)、List(ArrayList、LinkedList、Vector)、Map(HashMap、TreeMap...))
  4. Cisco 交换机密码重置步骤
  5. 快速完全删除node_modules
  6. 【剑指offer】面试题66:构建乘积数组(Java)
  7. solid 铝型材框架_solidworks铝型材库
  8. 如何将 png 图片转换为 eps ?
  9. 三大统计相关系数:Pearson、Spearman秩相关系数、kendall等级相关系数
  10. Java通过BCrypt加密
  11. 得到条形码的校验位函数
  12. Elasticsearch 相关知识
  13. Ubuntu内网穿透
  14. 实现极致节能,维谛技术(Vertiv)有哪些特殊技能?
  15. 雅思和托福的区别(转)
  16. bzoj 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
  17. 计算机网络里什么叫专线,专线和宽带的区别有哪些_专线网络和家庭宽带的具体区别介绍...
  18. [C语言]累加器----PTA
  19. LINUX基础 第四次课 10月15日
  20. Ubuntu17.10解决安装完网易云音乐无法打开

热门文章

  1. 多校2.1012La Vie en rose
  2. 【lzy学习笔记-dive into deep learning】数学预备 2.1-2.4
  3. win10系统事件查看器如何打开 Win10事件查看器怎么使用
  4. 任务栏优化工具TrueLaunchBar
  5. SQL控制权力(DNC)与日志
  6. 机器学习--单细胞聚类(二)
  7. 热核特征(heat kernel signature,HKS)简单解释(附可运行代码)
  8. STM32CubeMX | | 使用小熊派串口驱动峰汇ETH-01以太网模块上传数据到OneNet
  9. Leetcode有效数独的Python解法
  10. Oracle触发器,删除一条数据的同时删除另一张表的关联数据