Swift 面试题
目录

Swift 中存储属性 (Stored Property) 的用法?

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

推荐答案

在 Swift 中,存储属性(Stored Property)是类、结构体或枚举中用于存储值的变量或常量。存储属性可以是常量(let)或变量(var),并且它们可以是简单的数据类型,也可以是复杂的自定义类型。

示例代码

关键点

  • 存储属性可以是变量(var)或常量(let)。
  • 如果存储属性是常量(let),则一旦实例化后就不能再修改。
  • 存储属性可以具有默认值,也可以在初始化时赋值。

本题详细解读

存储属性的定义

存储属性是类、结构体或枚举中用于存储值的变量或常量。它们可以是简单的数据类型(如 Int、String),也可以是复杂的自定义类型(如另一个结构体或类)。

存储属性的类型

  • 变量存储属性:使用 var 关键字声明,可以在实例化后修改。
  • 常量存储属性:使用 let 关键字声明,一旦实例化后就不能再修改。

存储属性的初始化

存储属性可以在定义时赋予默认值,也可以在初始化时赋值。如果存储属性没有默认值,则必须在初始化时赋值。

示例分析

在这个例子中,Person 结构体有两个存储属性:name 和 age。name 是变量存储属性,可以在实例化后修改;age 是常量存储属性,一旦实例化后就不能再修改。

存储属性的默认值

存储属性可以在定义时赋予默认值,这样在实例化时就不需要显式赋值。

在这个例子中,name 和 age 都有默认值,因此在实例化时不需要显式赋值。

存储属性的延迟初始化

Swift 还支持延迟存储属性(Lazy Stored Property),使用 lazy 关键字声明。延迟存储属性只有在第一次访问时才会被初始化。

在这个例子中,importer 是一个延迟存储属性,只有在第一次访问时才会被初始化。