Swift面试高频10问精解

1、SwiftObjective-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、更多常见面试问题

(完整问题解答,请参阅完整内容)

7z 文件大小:1.63KB