Swift 面试题
目录

Swift 中什么是类型属性 (Type Property)?

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

推荐答案

在 Swift 中,类型属性(Type Property)是属于类型本身的属性,而不是属于该类型的实例的属性。类型属性在整个类型的所有实例之间共享,并且可以通过类型名直接访问。类型属性可以是存储属性或计算属性,并且必须使用 static 或 class 关键字来声明。

  • static 关键字用于定义不可被子类重写的类型属性。
  • class 关键字用于定义可以被子类重写的类型属性(仅适用于计算属性)。

本题详细解读

类型属性的定义

类型属性是属于类型本身的属性,而不是属于该类型的实例的属性。它们在整个类型的所有实例之间共享,并且可以通过类型名直接访问。类型属性可以是存储属性或计算属性。

类型属性的声明

类型属性使用 static 或 class 关键字来声明:

  • static 关键字用于定义不可被子类重写的类型属性。它适用于结构体、枚举和类。
  • class 关键字用于定义可以被子类重写的类型属性,但仅适用于计算属性,且只能在类中使用。

示例代码

类型属性的使用场景

类型属性通常用于以下场景:

  1. 共享数据:当需要在类型的所有实例之间共享数据时,可以使用类型属性。
  2. 全局常量:类型属性可以用于定义全局常量,这些常量在整个应用程序中都可以访问。
  3. 单例模式:类型属性常用于实现单例模式,确保一个类只有一个实例。

注意事项

  • 类型属性是延迟初始化的,即它们在第一次被访问时才会被初始化。
  • 类型属性是线程安全的,Swift 会确保它们的初始化只发生一次。
  • 类型属性不能是实例属性,因为它们属于类型本身,而不是类型的实例。