swift知识点

Q:optional变量拆包有多少种方法
A:
!解包,不安全
?解包,安全
optional绑定,安全
nil coalescing解包,安全

Q:class和struct的区别
A:class 为类, struct 为结构体, 类是引用类型, 结构体为值类型, 结构体不可以继承

Q:array的map、filter、reduce 的作用
map 将列表映射成另外一个

[1, 2, 3].map{"\($0)"}// 数字数组转换为字符串数组
["1", "2", "3"]

filter 用于过滤, 筛选出符合条件元素

[1, 2, 3].map{"\($0)"}// 数字数组转换为字符串数组
["1", "2", "3"]

reduce 合并

[1, 2, 3].reduce(""){$0 + "\($1)"}// 转换为字符串并拼接
"123"

Q:throws 和 rethrows
A:
throws,函数会抛出异常
rethrows,函数本身不会抛出异常,函数的参数(闭包)会抛出异常

Q:try? , try!
A:
使用两个关键字可以不用写 do catch
try? 在用于处理可抛出异常函数时, 如果函数抛出异常, 则返回 nil
try!在用于处理可抛出异常函数时, 如果函数抛出异常, 程序crash

Q:lazy
A:
懒加载, 当属性要使用的时候, 才去完成初始化

Q:inout参数
A:输入输出参数,可以修改基本类型的值

Q:定义静态方法时关键字 static 和 class 有什么区别
A:
static 定义的方法不可以被子类重写,class可以

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 结构体struct 和 类class (1) 结构体和类区别? (2) 为什么使用结构体? 在多线程环境中,...
    流萤的分享阅读 4,233评论 0 1
  • 协议 协议支持多继承 类 结构体 枚举都可以遵守协议 协议之间的继承 协议继承用于代理设计模式 代理属性,一般都是...
    iiNico阅读 4,449评论 0 8
  • 说明时间首次发布2019年03月22日最近更新2019年07月14日 前言:此为再次系统学习Swift所做的笔记。...
    春暖花已开阅读 5,661评论 0 3
  • 1、as、as?、as!三种区别 as 从派生类转换为基类,向上转型(upcasts) 数值类型(CGFloat,...
    萤火虫离别的礼物阅读 3,652评论 0 0
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 9,770评论 0 13