繁体   English   中英

“静态”意味着枚举或结构中的常量是什么

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM