我应该使用struct还是class?

如果您不熟悉Swift,那么您可能会认为StructClass可以做完全相同的事情,而struct的灵活性也较低,因此为什么不使用Class而不是Class呢?

结构是值类型, 是引用类型。

引用类型位于堆内存中,值类型位于堆栈存储器中。 因此有时struct可能比类更快,但实际上它取决于许多其他事情。

包含值类型的变量包含整个值类型值。 当您将值类型复制到另一个变量时,这意味着您正在复制整个值。 复制后,它们是两个不同的变量,如果您对一个变量进行了一些更改,则不会对另一个变量产生影响。

包含引用类型的变量包含一个指针,该指针保存实际变量所在的内存地址。 将引用类型复制到另一个变量意味着它将地址从一个变量复制到另一个。 这两个变量现在拥有相同的内存地址。 如果对其中一个进行一些更改,则对另一个也会有相同的效果。

如果我们通过Struct和Class,那么我们可以得出如下摘要:

课程–

  1. 可以支持继承。
  2. 正在配套铸件。
  3. 可以有反初始化器。
  4. 支持引用计数。

结构-

  1. 不支持继承。
  2. 不支持类型转换。
  3. 通过价值传递。
  4. 不能有空引用。

因此,结构基本上适合用作数据容器,而不是逻辑部分。 如果您的数据类型相对较小且寿命较短,则可以考虑使用结构。