Swift 什么是;“静态”;在枚举或结构中暗示常量
我最近遇到了以下情况:Swift 什么是;“静态”;在枚举或结构中暗示常量,swift,struct,enums,constants,Swift,Struct,Enums,Constants,我最近遇到了以下情况: enum MyEnum { static let myVariable = "some value" } struct MyStruct { static let myVariable = "some value" } 想知道静态意味着什么。据我所知,let已经暗示了不变性,然后所有enum/struct实例都会共享该不变性。在我看来,这是对内存消耗的微观管理,但我不确定我是否遗漏了这里的基本要点。这意味着myVariable是一个–该类型的所有实例都可以使用
enum MyEnum {
static let myVariable = "some value"
}
struct MyStruct {
static let myVariable = "some value"
}
想知道
静态意味着什么。据我所知,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
声明静态变量的情况下,这是一种将不可诊断的错误和崩溃引入程序的好方法。所以这确实是内存管理?!对于MyFatStruct
而不是MySlimStruct
,是否有一个用例?是的,如果您希望每个实例都有自己的myVariable
@Airspeed Velocity值,您认为您可以对上一条评论进行一点扩展吗?