卓同窗的 Swift 面试题


我以为应该掌握的知识点,没有实际意义。

  • class 和 struct 的区别
  • 不经过继承,代码复用(共享)的方式有哪些
  • Set 独有的方法有哪些?
  • 实现一个 min 函数,返回两个元素较小的元素
  • map、filter、reduce 的做用
  • map 与 flatmap 的区别
  • 什么是 copy on write
  • 如何获取当前代码的函数名和行号
  • 如何声明一个只能被类 conform 的 protocol
  • guard 使用场景
  • defer 使用场景
  • String 与 NSString 的关系与区别
  • 怎么获取一个 String 的长度
  • 如何截取 String 的某段字符串
  • throws 和 rethrows 的用法与做用
  • try? 和 try!是什么意思
  • associatedtype 的做用
  • 何时使用 final
  • public 和 open 的区别
  • 声明一个只有一个参数没有返回值闭包的别名
  • Self 的使用场景
  • dynamic 的做用
  • 何时使用 @objc
  • Optional(可选型) 是用什么实现的
  • 如何自定义下标获取
  • ?? 的做用
  • lazy 的做用
  • 一个类型表示选项,能够同时表示有几个选项选中(相似 UIViewAnimationOptions ),用什么类型表示
  • inout 的做用
  • Error 若是要兼容 NSError 须要作什么操做
  • 下面的代码都用了哪些语法糖
    [1, 2, 3].map{ $0 * 2 }复制代码
  • 什么是高阶函数
  • 如何解决引用循环
  • 下面的代码会不会崩溃,说出缘由
    var mutableArray = [1,2,3]
    for _ in mutableArray {
      mutableArray.removeLast()
    }复制代码
  • 给集合中元素是字符串的类型增长一个扩展方法,应该怎么声明
  • dynamic framework 和 static framework 的区别是什么

    高级

  • 一个 Sequence 的索引是否是必定从 0 开始?
  • 数组都实现了哪些协议
  • 如何自定义模式匹配
  • autoclosure 的做用
  • 编译选项 whole module optmization 优化了什么
  • 下面代码中 mutating 的做用是什么swift

    struct Person {
    
      var name: String {
          mutating get {
              return store
          }
      }
    }复制代码
  • 如何让自定义对象支持字面量初始化

哲学部分

  • 为何数组索引越界会崩溃,而字典用下标取值时 key 没有对应值的话返回的是 nil 不会崩溃。
  • 一个函数的参数类型只要是数字(Int、Float)均可以,要怎么表示。

欢迎关注个人微博:@没故事的卓同窗数组

相关文章
相关标签/搜索