我是新来的斯威夫特和迅速跨越枚举功能刚刚来到,它可以已经计算性能,但不会存储性能 为什么枚举中未存储财产迅速?斯威夫特枚举存储性能
1
A
回答
2
枚举是结构化的数据类型。他们可以有存储value type
性质(所以例如static
性质),但他们不能有实例的属性类似于对象会有。此外,计算出的属性允许每枚枚举的每个case
返回不同的值,这通常会有所不同。
从苹果文档
值类型是一个类型,其值时,它被分配给一个 变量或常数,或当它被传递到功能被复制。
所有结构和枚举是斯威夫特值类型。这意味着 任何结构和枚举情况下,您创建和任意值 类型它们作为属性,是当他们在你的代码中传递 周围总是被复制。
因为每次分配它们都会复制枚举,所以它们不能包含实例变量,如reference type
会。区别在于引用类型引用相同的实例而不是被复制。枚举是的情况下定义因此它们的值将始终是相同的。
编辑:
结构和枚举之间的一个重要区别是,结构可以有存储性能。枚举中的每个案例可以具有不同的关联值,但枚举类型的每个值都代表枚举定义的单个案例。因此,根据定义,枚举案不应该改变值。
STRUCT:值类型,可以有存储属性
枚举:值类型,不能有存储属性
类:参考类型,已经存储了属性
相关问题
- 1. 哈希的枚举在斯威夫特
- 2. 斯威夫特枚举复杂rawvalues
- 3. 斯威夫特枚举与关联值
- 4. 交换枚举值斯威夫特
- 5. 斯威夫特枚举评价
- 6. 斯威夫特的OpenGL ES枚举
- 7. 斯威夫特通用枚举为逃避闭包是功能
- 8. 斯威夫特2斯威夫特3
- 9. 斯威夫特 - JSQMessagesViewController与斯威夫特
- 10. 斯威夫特存储辞典阵列
- 11. 如何存储在斯威夫特
- 12. 斯威夫特枚举与论证:如何比较呢?
- 13. 斯威夫特:选择了一个随机枚举值
- 14. 斯威夫特泛型和枚举与拳击
- 15. 斯威夫特 - 类别枚举(或大意的东西)
- 16. 斯威夫特枚举.toRaw和.fromRaw和Xcode 6.1
- 17. 斯威夫特显示从枚举参数的错误消息
- 18. 斯威夫特枚举值都无法访问
- 19. XCTest总是定制斯威夫特错误枚举
- 20. 不能在斯威夫特
- 21. 斯威夫特
- 22. 斯威夫特
- 23. 斯威夫特
- 24. 斯威夫特
- 25. 斯威夫特
- 26. 斯威夫特
- 27. 斯威夫特
- 28. 斯威夫特
- 29. 斯威夫特
- 30. 斯威夫特
感谢对于这样的快速回复,但我仍然有疑问,因为背后有什么技术原因。为什么他们不能拥有实例存储的属性? –
编辑更多信息的答案 – Max
由于结构也像枚举值类型,但它们已存储属性。因此,根据你的答案,结构也不应该存储实例属性。如果我缺少一些东西,请纠正我。 –