[英]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
是一个类型属性 –该类型的所有实例都可以使用的单个属性。 本质上是与MyEnum
关联的全局变量。
对于用let
声明的常量,这是一种声明范围为常量的常量的方式,该常量在该类型的每个实例内均不占用空间,即:
struct MySlimStruct {
static let myVariable = "some value"
}
sizeof(MySlimStruct) // returns 0
struct MyFatStruct {
let myVariable = "some value"
}
sizeof(MyFatStruct) // returns 24
对于使用var
声明的静态变量,这是在程序中引入无法诊断的错误和崩溃的好方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.