关于swift的一些属性总结
2018-01-13 00:00
253 查看
guard let x = x where x > 0 else { // 变量不符合条件判断时,执行下面代码 return }
使用guard语句将上述的3个问题一并解决:
是对你所期望的条件做检查,而非不符合你期望的。又是和assert很相似。如果条件不符合,guard的else语句就运行,从而退出这个函数。
如果通过了条件判断,可选类型的变量在guard语句被调用的范围内会被自动的拆包 - 这个例子中该范围是fooGuard函数内部。这是一个很重要,却有点奇怪的特性,但让guard语句十分实用。
对你所不期望的情况早做检查,使得你写的函数更易读,更易维护。(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] |
相关文章推荐
- 个人总结的一些关于String、Function、Array的属性和用法
- 关于input和button按钮常用的一些属性总结(积累)
- 关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结
- 个人总结的一些关于String、Function、Array的属性和用法
- 关于printf("%p",p);使用方法的一些总结
- 关于写程序时「对数据库操作」的一些总结。
- angularJs关于指令的一些冷门属性
- 关于C++的一些总结
- 关于Java中equal函数和==的一些区别做一个总结,以供自己随时查看复习。
- Cocos2d-x学习之---Andorid关于返回键退出的一些小总结
- 关于Struts2的namespace的一些总结
- 关于块状元素的一些知识点总结
- 关于正则和sed的一些用法总结。
- CSDN日报20170322——《关于软件研发的一些体会总结》
- 关于伪类hover的一些总结
- 关于UIScrollView属性和方法的总结
- 关于C++中的虚拟继承的一些总结
- 关于iTween的一些总结和看法
- 关于libSVM的一些总结