#初级
- String 与 NSString 的关系与区别
- 怎么获取一个 String 的长度
- 如何截取 String 的某段字符串
- throws 和 rethrows 的用法与作用
- try? 和 try!是什么意思
- associatedtype 的作用
- 什么时候使用 final
- public 和 open 的区别
- 声明一个只有一个参数没有返回值闭包的别名
高级
- 一个 Sequence 的索引是不是一定从 0 开始?
- 数组都实现了哪些协议
- 如何自定义模式匹配
- autoclosure 的作用
- 编译选项 whole module optmization 优化了什么
- 下面代码中 mutating 的作用是什么
一.Swift和OC的区别?
- 1.swift是静态语言,有类型推断,OC是动态语言。
- 2.swift面向协议编程,OC面向对象编程
- 3.swift注重值类型,OC注重引用类型。
- 4.swift支持泛型,OC只支持轻量泛型
- 5.swift支持静态派发(效率高)、动态派发(函数表派发、消息派发)方式,OC支持动态派发(消息派发)方式。
- 6.swift支持函数式编程
- 7.swift的协议不仅可以被类实现,也可以被struct和enum实现
- 8.swift有元组类型、支持运算符重载
- 9.swift支持命名空间
- 10.swift支持默认参数
- 11.swift比o