当前位置: 首页 > 面试题库 >

为什么枚举在Swift中具有计算属性但没有存储属性?

孟修竹
2023-03-14
问题内容

我是Swift的新手,只是在文档中遇到了这一点:

计算的属性由类,结构和枚举提供。存储的属性仅由类和结构提供。

这是为什么?枚举的关联值是否像存储属性一样工作?似乎他们最初存储了属性-


问题答案:

enum确实具有存储的 类型 属性-即static属性。他们没有存储的 实例
属性。我不知道是否存在技术上的原因为什么存储的实例属性不可用于enum。如果您想要“为什么”的技术答案,则可能需要在开发论坛上提问。

在您的问题中,您询问关联值是否像存储属性一样工作。实际上,它们确实比存储的structs和classes
属性更灵活(在某些方面)。每一个caseenum可以有自己的专业设置与它相关的数据。不必将一组存储属性应用于所有cases,而是可以针对每个个性化存储属性case



 类似资料:
  • 问题内容: 考虑: 有没有办法使这种简单枚举的思想适应这种情况?(请参阅此问题)理想情况下,就像在Java中一样,我想将它们全部塞入一个类中。 Java模型: 问题答案: Python 3.4具有新的Enum数据类型(已反向移植为,并增强为1)。无论和2轻松支持您的使用情况: [ py2 / 3] [ py2 / 3或3.4+] 并在使用中: 1披露:我是Python stdlib ,backpo

  • 我想创建一个带有 Java 枚举(enum)的 UML 图,它具有一个或多个属性,但我对如何做到这一点感到困惑。 例如,一个枚举可以像这样声明: 没有属性,很容易: 但是如何优雅地用属性建模呢?应该是这样吗? 我在这里只找到了这个示例,但它使用String类属性作为枚举名称。我认为,这应该不同于的用法,而不指定枚举名称数据类型。

  • 问题内容: 通过Swift编程语言,我惊讶地发现,与结构和枚举不同,类不支持存储的类型属性。 这是其他OO语言的共同特征,因此我认为有充分的理由他们决定不允许它。但是我无法猜测出这个原因是什么,尤其是由于结构(和枚举)拥有它们。 难道仅仅是Swift的早期开发,还没有实现吗?还是在语言设计决策背后有更深层的原因? 顺便说一句,“存储类型属性”是Swift术语。在其他语言中,这些可能称为类变量。示例

  • 我是一个JPA新手,正在尝试理解@Jointable annotation用于双向、单管关系、B/W项目和任务实体,其中项目可以有多个任务。 我可以将@Jointable与具有@ManyToOne注释的实体一起使用,但当我将@JoinColumn放置在具有@OneToMany的另一个实体上时,我没有在@ManyToOne注释上指定“MappedBy”属性的选项。 我想知道为什么? 我尝试在这两个实

  • 我正在尝试实现这个objective-c代码 为什么我要使用这个?CustView从很多地方调用,所以我们必须在所有地方检查这个条件。为了避免这种重复,我写了这个。 所以我尝试创建存储的属性,并使用getter方法检查是否已经创建。 这是正确的吗?或者其他方法来做这件事? 注意:上面的代码没有警告或错误。但是与存储和计算的属性混淆。请让我明白。

  • 本文向大家介绍watch和计算属性有什么区别?相关面试题,主要包含被问及watch和计算属性有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 通俗来讲,既能用computed 实现又可以用 watch 监听来实现的功能,推荐用 computed,重点在于 computed 的缓存功能 computed计算属性是用来声明式的描述一个值依赖了其它的值,当所依赖的值或者变量改变时,计算属性也会跟着