Struct学习笔记

213 阅读2分钟
  • Struct介绍

Struct是一种Value Type的资料类型。值类型

有静态的空间和实例的空间

在这些空间里面像平常一样建立变数(属性)和function(方法),但他们需要透过对应的空间存取。

主要用来包装资料和整理code。

可以conforms to Protocol。

  • 建立Struct

通过关键字Struct声明。

惯用大驼峰命名。

在后方的大括号内的区域定义属性和方法。  

  • 设定属性

在类型内建立的变数是实例的属性,只能透过实例存取。  

在实例被建立前 ,所以不需要先赋值。

用let的话,建立后就不能更改。

  • 设定方法

在类型内建立的function是实例的方法,只能透过实例存取。

可以直接存取实例的属性。

如果要从方法修改属性,需要标记方法是mutating

  • 设定静态属性&方法

在属性和方法前面加上static就变成静态的。
静态不需要实例,它属于类型本身,也就是程序一启动就存在了。

可以直接存取自己的静态属性。

  • 类型里的Self & self

self表示自己,通常会省略。

Self表示自己的类型。

  • 预设启动方式

Struct会自动根据预设的资料建立启动方式,用属性名称作为引数名称。

可以省略已经有预设值的属性。

  • 自定启动方式

可以透过init自己定义启动方式,写法和function一样。

必须在init的的block之中赋值给所有没有预设值、不是Optional的属性。

init是mutating的。

自己定义init后不会保留自动产生的。

  • 私有属性

在属性前加上private,这个属性就不能从外部存取。

private属性无法产生预设启动,需要自己写init,或是用let设定固定的预设值。

属性可以被get(读取)和set(写入)。

设定写入的部分私有,让外部依然能够读取,但不能修改。

  • conforms to Protocol

在定义类型名称的后面加上冒号和想加入的Procotol。

用逗点区分多个Protocol。

需要在struct的定义中加入规范的属性或方法。