What if you could stop worrying about typos and missing cases when handling fixed options in your code?
Why Enum declaration and cases in Swift? - Purpose & Use Cases
Imagine you are writing a program to handle different types of fruits. You write separate variables or constants for each fruit type and then write many if-else checks everywhere to see which fruit you have.
This manual way is slow and confusing. You might forget a fruit type or mistype a name. Adding a new fruit means changing many parts of your code, which can cause bugs and wastes time.
Enums let you group related values under one name. You declare all possible cases once, and the compiler helps you use them correctly everywhere. This makes your code cleaner, safer, and easier to update.
let fruit = "apple" if fruit == "apple" { print("It is an apple") } else if fruit == "banana" { print("It is a banana") }
enum Fruit {
case apple
case banana
}
let fruit = Fruit.apple
switch fruit {
case .apple:
print("It is an apple")
case .banana:
print("It is a banana")
}
Enums enable you to clearly define and manage a fixed set of related options, making your code more reliable and easier to understand.
Think of a traffic light system where the light can only be red, yellow, or green. Using enums, you can represent these states clearly and handle each case safely in your code.
Enums group related values under one type.
They reduce errors by limiting possible values.
They make code easier to read and maintain.
Practice
enum in Swift?Solution
Step 1: Understand what enums represent
Enums group related values together to make code clearer and safer.Step 2: Compare options with enum purpose
Only To group related values under one name correctly describes grouping related values under one name.Final Answer:
To group related values under one name -> Option AQuick Check:
Enum purpose = Group related values [OK]
- Confusing enums with functions
- Thinking enums declare variables
- Mixing enums with loops
Direction with cases north, south, east, and west?Solution
Step 1: Recall Swift enum syntax
Enums use the keywordenum, followed by the name and curly braces containingcasedeclarations separated by commas.Step 2: Check each option's syntax
enum Direction { case north, south, east, west } uses correct syntax:enum Direction { case north, south, east, west }. Others use invalid syntax.Final Answer:
enum Direction { case north, south, east, west } -> Option CQuick Check:
Correct enum syntax = enum Direction { case north, south, east, west } [OK]
- Using '=' instead of braces
- Omitting 'case' keyword
- Separating cases with semicolons
enum Light {
case red, yellow, green
}
let current = Light.red
switch current {
case .red:
print("Stop")
case .yellow:
print("Caution")
case .green:
print("Go")
}Solution
Step 1: Identify the enum case assigned
The variablecurrentis assignedLight.red.Step 2: Match the switch case for
The switch matchescurrent.redand prints "Stop".Final Answer:
Stop -> Option DQuick Check:
Light.red triggers "Stop" output [OK]
- Confusing enum cases with strings
- Forgetting dot prefix in switch
- Assuming default output
enum Weather {
case sunny
case rainy
case windy
case
}Solution
Step 1: Review each enum case line
The last line hascasewithout a case name, which is invalid syntax.Step 2: Confirm other parts are correct
Enum name and braces are correct; cases do not need to be strings.Final Answer:
Missing case name after 'case' keyword -> Option AQuick Check:
Every 'case' must have a name [OK]
- Leaving 'case' empty
- Thinking cases need quotes
- Missing braces around enum
Planet with cases for mercury, venus, and earth. Then, write a function that returns a friendly message for each planet. Which code correctly implements this?Solution
Step 1: Check enum declaration syntax
Options A, C, and D declare enum correctly withcasekeyword; B misses it, so B is invalid.Step 2: Check function parameter and switch usage
enum Planet { case mercury, venus, earth } func message(for planet: Planet) -> String { switch planet { case .mercury: return "Closest to the Sun" case .venus: return "Second planet" case .earth: return "Our home" } } usesswitchwith dot syntax for cases and correct function signature. enum Planet { case mercury, venus, earth } func message(planet: Planet) -> String { if planet == mercury { return "Closest to the Sun" } else if planet == venus { return "Second planet" } else { return "Our home" } } uses if-else without dot syntax (.mercury), causing compile error. enum Planet { case mercury, venus, earth } func message(for planet: Planet) -> String { switch planet { case mercury: return "Closest to the Sun" case venus: return "Second planet" case earth: return "Our home" } } misses dot prefix in switch cases, causing error.Final Answer:
enum Planet { case mercury, venus, earth } func message(for planet: Planet) -> String { switch planet { case .mercury: return "Closest to the Sun" case .venus: return "Second planet" case .earth: return "Our home" } } -> Option BQuick Check:
Enum with 'case' and switch with dot cases [OK]
- Omitting 'case' keyword in enum
- Missing dot prefix in switch cases
- Using if without dot prefix for enum cases
Ready to prove it?
Pass the test and this pattern moves unknown
