"static" 对枚举或结构中的常量意味着什么
What does "static" imply on constant within an enum or struct
我最近遇到了以下情况:
enum MyEnum {
static let myVariable = "some value"
}
struct MyStruct {
static let myVariable = "some value"
}
并想知道 static
意味着什么。根据我的理解,let
已经暗示了 enum
/struct
的所有实例共享的不变性。在我看来,这是对内存消耗进行微观管理,但我不确定我是否遗漏了这里的基本要点。
这意味着 myVariable
是一个 type property – 该类型的所有实例都可以使用的单个 属性。本质上是与 MyEnum
.
关联的全局变量
对于使用 let
声明的常量,这是一种声明常量的方法,这些常量的范围限定为在该类型的每个实例中不占用 space 的类型,即:
struct MySlimStruct {
static let myVariable = "some value"
}
sizeof(MySlimStruct) // returns 0
struct MyFatStruct {
let myVariable = "some value"
}
sizeof(MyFatStruct) // returns 24
对于使用 var
声明的静态变量,这是将无法诊断的错误和崩溃引入程序的好方法。
我最近遇到了以下情况:
enum MyEnum {
static let myVariable = "some value"
}
struct MyStruct {
static let myVariable = "some value"
}
并想知道 static
意味着什么。根据我的理解,let
已经暗示了 enum
/struct
的所有实例共享的不变性。在我看来,这是对内存消耗进行微观管理,但我不确定我是否遗漏了这里的基本要点。
这意味着 myVariable
是一个 type property – 该类型的所有实例都可以使用的单个 属性。本质上是与 MyEnum
.
对于使用 let
声明的常量,这是一种声明常量的方法,这些常量的范围限定为在该类型的每个实例中不占用 space 的类型,即:
struct MySlimStruct {
static let myVariable = "some value"
}
sizeof(MySlimStruct) // returns 0
struct MyFatStruct {
let myVariable = "some value"
}
sizeof(MyFatStruct) // returns 24
对于使用 var
声明的静态变量,这是将无法诊断的错误和崩溃引入程序的好方法。