Swift面试高频10问精解
1、Swift和Objective-C有什么区别?
1) Swift 是 强类型(静态)语言,有类型推断,而 Objective-C 是 弱类型(动态)语言。
2) Swift 倾向于面向协议编程,Objective-C 则是面向对象编程。
3) Swift 注重值类型,而 Objective-C 注重引用类型。
4) Swift 支持泛型,Objective-C 仅支持轻量泛型(集合泛型)。
5) Swift 支持静态派发(效率高)、动态派发(函数表派发、消息派发),Objective-C 仅支持动态派发(消息派发)。
6) Swift 支持函数式编程(如高阶函数)。
7) Swift 的协议不仅可被类实现,还可被 Struct 和 Enum 实现。
8) Swift 有元组类型、支持运算符重载。
9) Swift 支持命名空间。
10) Swift 支持默认参数。
11) Swift 代码通常比 Objective-C 更简洁。
2、讲讲 Swift 的派发机制
1)函数的派发机制:
- 静态派发(直接派发)
- 函数表派发
- 消息派发
2)Swift 派发机制
- 所有 ValueType(值类型:Struct、Enum)使用直接派发。
- 协议的 Extensions 使用直接派发。
3、更多常见面试问题
(完整问题解答,请参阅完整内容)
1.63KB
文件大小:
评论区