swift - 案例成员值如何存储?

标签 swift enums

如果 case 成员值是“完全成熟的值”(Apple 文档),那么如何通过带有值名称的点表示法来访问它们?简单的例子:

enum Suit: String {
case clubs, spades, diamonds, hearts

}
var cardInHand = Suit.hearts
print(cardInHand) //prints hearts

我对如何通过枚举名称访问值并不感到困惑(似乎静态是在幕后实现的)。对我来说 Suit.hearts = eyes 意味着名为hearts 的成员存储一个名为hearts 的值。在这种情况下,只有一颗红心被声明为箱心。这是否意味着 case 的值被隐式设置为声明的值 hearts,或者相反,hearts 的情况下,hearts 实际上是值,但它隐式设置为同名的静态属性?红心是值还是值红心的名称?怎么可能同时出现呢?

最佳答案

与其他语言中的枚举不同,命名标签不会隐式映射到 0、1.. 等。枚举成员是其自己的枚举名称指定类型的值。枚举可以存储任何类型的值,并且每个枚举成员的类型值可以不同。 请参阅this

关于swift - 案例成员值如何存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45395578/

相关文章:

ios - 如何在 Swift 中生成和处理错误

java - Maven 编译器插件错误 : can't access enum (bad signature, bad class)

ios - 将字符串数组传递给函数

text - Swift 和自动布局 : proportional font size in a label

c# - 从枚举值列表创建可检查上下文菜单的通用方法

c# - 从 int 继承的枚举

c - 在 GCC 中分配或执行具有不同枚举类型的算术时如何发出警告?

javascript - Typescript 中的 const 枚举

swift - 我什么时候进行 API 调用

swift - 如何在使用 ARFaceTrackingConfiguration 时始终将 SceneNode 定位在 SceneView 的中心