博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于swift的一些属性总结
阅读量:6351 次
发布时间:2019-06-22

本文共 1380 字,大约阅读时间需要 4 分钟。

hot3.png

guard let x = x where x > 0 else {        // 变量不符合条件判断时,执行下面代码        return    }
使用guard语句将上述的3个问题一并解决:
  1. 是对你所期望的条件做检查,而非不符合你期望的。又是和assert很相似。如果条件不符合,guard的else语句就运行,从而退出这个函数。
  2. 如果通过了条件判断,可选类型的变量在guard语句被调用的范围内会被自动的拆包 - 这个例子中该范围是fooGuard函数内部。这是一个很重要,却有点奇怪的特性,但让guard语句十分实用。
  3. 对你所不期望的情况早做检查,使得你写的函数更易读,更易维护。(1)

 反向遍历就是直接在enumerated()函数后调用reversed()函数。 swift (2)

extension 类似oc的扩展,但是指这个类的扩展,可以让代码逻辑更好控制,也为日后重构代码打下了良好的基础(3)

访问权限则依次为:open,public,internal,fileprivate,private。fileprivate这个元素的访问权限为文件内私有(4)

 private lazy var xxx:xxx{ return:} 相当于oc中的懒加载(5)

if #available(iOS 11.0, *) {

            return view.safeAreaInsets

        } else {

            return .zero

        }

swift和oc中都一样,判断系统是否是iOS11 (6)

willSet是在设置新值之前调用,willSet观察器会将新的值作为参数传入,默认参数名为newValue。didSet是设置新值后立即调用,观察期会将旧的值作为参数传入,默认参数为oldValue。

需要注意的是在属性初始化的时候不会调用willSet 和 didSet方法。如果在didSet 为属性赋值,这个值会替换原来观察器之前设置的值。(7)

Swift 自动对行内闭包提供简写实际参数名,你也可以通过 $0 , $1 , $2 等名字来引用闭包的实际参数值。

如果你在闭包表达式中使用这些简写实际参数名,那么你可以在闭包的实际参数列表中忽略对其的定义,并且简写实际参数名的数字和类型将会从期望的函数类型中推断出来。 in  关键字也能被省略,因为闭包表达式完全由它的函数体组成:

1

2

3

4

5

6

7

let numbers = [3,2,4,1,5,7,6];

var sortedNumbers = numbers.sorted(by:{$0 < $1});

print(sortedNumbers);//输出为:[1, 2, 3, 4, 5, 6, 7]

 

sortedNumbers = numbers.sorted(by:{$1 < $0});

print(sortedNumbers);//输出为:[7, 6, 5, 4, 3, 2, 1]

 可以看出,可以用$0、$1、$2来表示调用闭包中参数,$0指代第一个参数,$1指代第二个参数,$2指代第三个参数,以此类推$n+1指代第n个参数,$后的数字代表参数的位置,一一对应。

 

转载于:https://my.oschina.net/u/2603560/blog/1606518

你可能感兴趣的文章
servlet笔记
查看>>
JVM(五)垃圾回收器的前世今生
查看>>
CentOS 7 下安装 Nginx
查看>>
Spring Boot 自动配置之@EnableAutoConfiguration
查看>>
web前端笔记
查看>>
import 路径
查看>>
finally知识讲解
查看>>
Matplotlib绘图与可视化
查看>>
openstack ocata版(脚本)控制节点安装
查看>>
【微信公众号开发】获取并保存access_token、jsapi_ticket票据(可用于微信分享、语音识别等等)...
查看>>
datatable 获取最大值
查看>>
sqlserver2012一直显示正在还原(Restoring)和从单用户转换成多用户模式(单用户连接中)...
查看>>
spark复习总结02
查看>>
李瑞红201771010111《第九周学习总结》
查看>>
[译]ZOOKEEPER RECIPES-Barriers
查看>>
6_5 一些有用网址
查看>>
NFC 鏈表操作
查看>>
pymongo模块
查看>>
第0次作业
查看>>
Ubuntu里设置python默认版本为python3(转载)
查看>>