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可以

你可能感兴趣的:(swift知识点)