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可以
网友评论