Swift guard let 的使用
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 的使用相关推荐
- swift_038(Swift之guard关键字(守护))
Swift - guard关键字(守护) guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么.但与if语句不同的是,guard语句只会有一个代码块,不像if语句可 ...
- swift可选类型_Swift可选
swift可选类型 Swift Optional is a very important underlying concept in Swift programming. Optional is so ...
- Metal日记:使用步骤指南
本文参考资料: juejin.im/post/5b1e8f- xiaozhuanlan.com/topic/04598- developer.apple.com/videos/play- github ...
- Metal 执行 GPU 命令的流程
概述 阅读完本文,你将了解 Metal 是如何在 GPU 上执行命令的. 让 GPU 来执行任务是通过发送命令来实现的. 该命令可以执行绘图.并行计算或资源管理相关的操作工作. Metal 应用程序和 ...
- Swift的Guard语句
最开始在Apple的Platform State of the Union看见swift的guard语句的时候,我当时不太理解以后会有什么理由能用到它.这个语句的介绍如下: 与if语句相同的是,gua ...
- Swift中 !和 ?的区别及使用与Swift的Guard语句
1.swift中的!和?到底是什么? ?和!其实分别是swift语言中的一种可选类型(Optional)操作的语法糖. 1.1可选类型是个什么东西? swift中可以声明一个没有初始值的属性,swif ...
- Swift学习之使用guard的好处
guard guard是 swift 2.0推出的新的判断语句的用法. 与if语句相同的是,guard也是基于一个表达式的布尔值去判断一段代码是否该被执行. 与if语句不同的是,guard只有在条件不 ...
- Swift @available #available guard
Swift 2.0 中,引入了可用性的概念.对于函数,类,协议等,可以使用@available声明这些类型的生命周期依赖于特定的平台和操作系统版本.而#available用在判断语句中(if, gua ...
- Swift中NSRange和Range的转换
最近项目再使用swift重构,遇到Range和NSRange转换的问题,这里记录下: 因为要使用NSRange,所以有了下面这段代码,将String转换为NSString后调用 range(of se ...
- swift中单例的创建及销毁
最近项目重构时使用了oc和swift的混编,遇到了关于单例的创建及销毁,这里记录一下 //创建单例private static var _sharedInstance: ViewController? ...
最新文章
- 诺依曼原理中计算机由运算器,冯诺依曼原理与计算机的基本组成
- 《众妙之门——Web用户体验设计与可用性测试》一第2章 在网页设计中通过测量数据优化情感投入2.1 情感应答和行为应答的关系...
- 集合-2(Set(HashSet、TreeSet、LinkedHashSet)、List(ArrayList、LinkedList、Vector)、Map(HashMap、TreeMap...))
- Cisco 交换机密码重置步骤
- 快速完全删除node_modules
- 【剑指offer】面试题66:构建乘积数组(Java)
- solid 铝型材框架_solidworks铝型材库
- 如何将 png 图片转换为 eps ?
- 三大统计相关系数:Pearson、Spearman秩相关系数、kendall等级相关系数
- Java通过BCrypt加密
- 得到条形码的校验位函数
- Elasticsearch 相关知识
- Ubuntu内网穿透
- 实现极致节能,维谛技术(Vertiv)有哪些特殊技能?
- 雅思和托福的区别(转)
- bzoj 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
- 计算机网络里什么叫专线,专线和宽带的区别有哪些_专线网络和家庭宽带的具体区别介绍...
- [C语言]累加器----PTA
- LINUX基础 第四次课 10月15日
- Ubuntu17.10解决安装完网易云音乐无法打开
热门文章
- 多校2.1012La Vie en rose
- 【lzy学习笔记-dive into deep learning】数学预备 2.1-2.4
- win10系统事件查看器如何打开 Win10事件查看器怎么使用
- 任务栏优化工具TrueLaunchBar
- SQL控制权力(DNC)与日志
- 机器学习--单细胞聚类(二)
- 热核特征(heat kernel signature,HKS)简单解释(附可运行代码)
- STM32CubeMX | | 使用小熊派串口驱动峰汇ETH-01以太网模块上传数据到OneNet
- Leetcode有效数独的Python解法
- Oracle触发器,删除一条数据的同时删除另一张表的关联数据