Swift 面试题
目录

Swift 中什么是结构体 (Struct)?

· 约 2 分钟读完 · 第 61 / 196 章

推荐答案

在 Swift 中,结构体(Struct)是一种值类型,用于封装一组相关的属性和方法。结构体可以定义存储属性、计算属性、方法、初始化器、下标等。与类(Class)不同,结构体是值类型,意味着它们在赋值或传递给函数时会被复制,而不是通过引用传递。

本题详细解读

1. 结构体的定义

结构体使用 struct 关键字定义,语法如下:

2. 结构体的特性

  • 值类型:结构体是值类型,赋值或传递时会复制整个实例。
  • 不支持继承:结构体不能继承其他结构体或类。
  • 默认初始化器:结构体自动生成一个成员逐一初始化器(memberwise initializer)。
  • 可变性:结构体的实例属性默认是不可变的,除非使用 mutating 关键字标记方法。

3. 结构体的使用场景

  • 轻量级数据封装:适合封装简单的数据模型。
  • 值语义:当需要值语义时,结构体是更好的选择。
  • 性能优化:由于结构体是值类型,避免了引用计数的开销。

4. 示例代码

5. 结构体与类的区别

  • 值类型 vs 引用类型:结构体是值类型,类是引用类型。
  • 内存管理:结构体不需要引用计数,类需要。
  • 继承:结构体不支持继承,类支持。

6. 注意事项

  • 深拷贝:结构体的赋值是深拷贝,所有属性都会被复制。
  • 性能:对于大型数据结构,频繁复制可能会影响性能,此时可以考虑使用类。

通过以上内容,你应该对 Swift 中的结构体有了全面的理解。