0
0
Swiftprogramming~30 mins

Type erasure concept in Swift - Mini Project: Build & Apply

Choose your learning style9 modes available
Understanding Type Erasure in Swift
📖 Scenario: Imagine you are building a simple app that manages different types of shapes. Each shape can calculate its area, but they have different types. You want to store them together and work with them uniformly.
🎯 Goal: You will create a protocol for shapes, implement two different shapes, then use type erasure to store them in a single array and calculate their total area.
📋 What You'll Learn
Create a protocol called Shape with a method area() returning Double
Create two structs Circle and Rectangle conforming to Shape
Create a type-erased wrapper called AnyShape to hold any Shape
Store multiple AnyShape instances in an array and calculate the total area
💡 Why This Matters
🌍 Real World
Type erasure helps when you want to work with different types that share behavior but cannot be stored together directly, such as UI components or data models.
💼 Career
Understanding type erasure is important for Swift developers to write flexible and reusable code, especially when working with protocols and generics.
Progress0 / 4 steps
1
Create the Shape protocol and two shape structs
Create a protocol called Shape with a method area() that returns a Double. Then create two structs: Circle with a radius property, and Rectangle with width and height properties. Both structs must conform to Shape and implement the area() method.
Swift
Need a hint?

Protocols define what methods a type must have. Structs can conform to protocols by implementing those methods.

2
Create the AnyShape type-erased wrapper
Create a struct called AnyShape that conforms to Shape. It should have a private property holding a closure for the area() method. Add an initializer that accepts any Shape and stores its area() method in the closure.
Swift
Need a hint?

Type erasure uses a wrapper that hides the specific type but keeps the behavior by storing closures.

3
Create an array of AnyShape and calculate total area
Create an array called shapes of type [AnyShape]. Add a Circle with radius 3 and a Rectangle with width 4 and height 5, wrapped as AnyShape. Then create a variable totalArea and use a for loop with variables shape to sum all areas from shapes.
Swift
Need a hint?

Wrap each shape in AnyShape to store them together. Use a loop to add their areas.

4
Print the total area
Write a print statement to display the text Total area: followed by the value of totalArea.
Swift
Need a hint?

Use string interpolation with print("Total area: \(totalArea)") to show the result.