美文网首页
swift知识点

swift知识点

作者: MoneyRobber | 来源:发表于2021-01-09 17:48 被阅读0次

    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知识点

          本文链接:https://www.haomeiwen.com/subject/vpicaktx.html