Mobile Development
Swift
Subjective
Oct 04, 2025
Explain the difference between lazy and computed properties.
Detailed Explanation
Lazy and computed properties serve different purposes in Swift property management.\n\n• **Lazy Properties:**\n• Calculated only when first accessed\n• Stored after first calculation\n• Must be declared with var\n• Cannot have observers\n\n\nclass DataManager {
\n var expensiveResource: ExpensiveClass = {\n print("Creating expensive resource")\n return ExpensiveClass()\n }()\n \n var processedData = self.rawData.map { $0.processed() }\n}\n\n\n• **Computed Properties:**\n• Calculated every time accessed\n• Not stored in memory\n• Can have getter and setter\n• Can have property observers\n\n\nstruct Rectangle {
\n var width: Double\n var height: Double\n \n var area: Double {\n get {\n return width * height\n }\n set {\n // Assuming square for simplicity\n width = sqrt(newValue)\n height = sqrt(newValue)\n }\n }\n}\n\n\n• **When to Use:**\n• **Lazy:** Expensive initialization, optional resources\n• **Computed:** Dynamic values, derived properties\n\n• **Performance:**\n• Lazy: One-time cost, then fast access\n• Computed: Calculation cost on every access
Discussion (0)
No comments yet. Be the first to share your thoughts!
Share Your Thoughts