我是新來的斯威夫特和迅速跨越枚舉功能剛剛來到,它可以已經計算性能,但不會存儲性能 爲什麼枚舉中未存儲財產迅速?斯威夫特枚舉存儲性能
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
由於結構也像枚舉值類型,但它們已存儲屬性。因此,根據你的答案,結構也不應該存儲實例屬性。如果我缺少一些東西,請糾正我。 –