Swift 面试题
目录

Swift 中什么是构造过程 (Initialization)?

· 约 3 分钟读完 · 第 92 / 196 章

推荐答案

在 Swift 中,构造过程(Initialization)是指为类、结构体或枚举的实例分配内存并设置初始值的过程。构造过程通过定义构造器(Initializer)来实现,构造器是一个特殊的方法,用于确保新实例在第一次使用之前完成正确的初始化。

Swift 的构造过程包括以下几个关键点:

  1. 存储属性的初始化:所有存储属性必须在构造过程结束之前被赋予初始值。
  2. 构造器的定义:通过 init 关键字定义构造器,构造器可以接受参数来设置属性的初始值。
  3. 默认构造器:如果所有属性都有默认值,Swift 会为结构体和类提供一个默认的无参数构造器。
  4. 构造器代理:类可以通过 super.init 调用父类的构造器,确保继承链中的每个类都完成初始化。

本题详细解读

1. 存储属性的初始化

在 Swift 中,所有存储属性必须在构造过程结束之前被赋予初始值。这意味着在构造器中必须为所有没有默认值的属性提供初始值。例如:

在这个例子中,name 和 age 属性在构造器中被赋予了初始值。

2. 构造器的定义

构造器通过 init 关键字定义,并且可以接受参数来设置属性的初始值。构造器的参数可以有外部参数名和内部参数名。例如:

在这个例子中,Point 结构体定义了一个构造器,接受 x 和 y 参数来初始化 x 和 y 属性。

3. 默认构造器

如果所有属性都有默认值,Swift 会为结构体和类提供一个默认的无参数构造器。例如:

在这个例子中,Size 结构体的所有属性都有默认值,因此 Swift 提供了一个默认的无参数构造器。

4. 构造器代理

类可以通过 super.init 调用父类的构造器,确保继承链中的每个类都完成初始化。例如:

在这个例子中,Car 类通过 super.init 调用了 Vehicle 类的构造器,确保 numberOfWheels 属性被正确初始化。