了解Swift中的Struct

让我们快速深入了解struct

struct是一种值类型 ,当将其值分配给变量或常量或将其传递给函数时,其值将被复制

结构必须在创建结构实例时将所有存储的属性都设置为初始值。 您可以在初始化程序中或通过分配默认值来为存储的属性设置初始值。

让我们为ecommerse网站的产品创建一个结构。

当我们复制struct时,它复制所有值类型,但它共享引用类型的引用。 如果您在上面的对象图中看到,ProductA和productB之间共享ProductFactory

结构类型的成员初始化器

所有结构都有一个自动生成的成员初始化器,您可以使用该初始化器来初始化新结构实例的成员属性。 可以通过如下名称将新实例的属性的初始值传递给成员初始化程序:

 产品(标识号:1234,名称:“ Remote car”,库存:true) 

产品又有一个工厂。 由于我们已经在声明时初始化了此属性,因此无需传入initializer

可选属性类型

可选类型的属性会自动初始化为nil值。

关于写时复制的不错的文章

内存分配:

结构将始终在堆栈中为所有值类型分配内存。 堆栈是一个简单的数据结构,具有两个操作,即PushPop 。 您可以通过按住指向堆栈末尾的指针来推动堆栈末尾并弹出堆栈末尾 所有引用类型都将存储在堆中。 使您可以分配具有动态生命周期的内存。 它必须搜索未使用的内存块进行分配,然后重新插入内存块以进行重新分配。 因此,如果结构具有引用类型,它将具有指向该类型的指针。

结论:

我试图在此处添加有关结构值类型的所有信息,这对于我们作为开发人员来说是必需的。