Bird
Raised Fist0
Swiftprogramming~5 mins

Enum methods and computed properties in Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an enum method in Swift?
An enum method is a function defined inside an enum that can perform actions or return values related to the enum cases. It helps organize behavior specific to the enum.
Click to reveal answer
beginner
What is a computed property in a Swift enum?
A computed property calculates and returns a value each time it is accessed, instead of storing a value. In enums, it can provide extra information based on the current case.
Click to reveal answer
intermediate
How do you define a computed property inside a Swift enum?
You define it like a variable with the keyword var and provide a get block or just return a value directly without storing it.
Click to reveal answer
intermediate
Can enum methods in Swift modify the enum's cases?
No, enum methods cannot change the enum's cases because enums are value types and their cases are fixed. Methods can return new values or perform calculations but not alter the case itself.
Click to reveal answer
beginner
Give an example of a computed property in a Swift enum that returns a description string.
Example:
enum Direction {
  case north, south, east, west
  var description: String {
    switch self {
    case .north: return "Up"
    case .south: return "Down"
    case .east: return "Right"
    case .west: return "Left"
    }
  }
}
Click to reveal answer
What keyword is used to define a computed property in a Swift enum?
Avar
Blet
Cfunc
Denum
Can enum methods in Swift change the enum case itself?
AOnly for raw value enums
BYes, always
COnly if marked mutating
DNo, enum cases are fixed
Which of the following is a valid use of a computed property in an enum?
ACalculating a value based on the current case
BChanging the enum case
CStoring a value permanently
DDefining a new enum case
How do you access a computed property in a Swift enum?
ABy using square brackets
BBy calling it like a function with parentheses
CBy using dot notation without parentheses
DBy importing a special library
What is the purpose of adding methods inside a Swift enum?
ATo store extra data permanently
BTo add behavior related to enum cases
CTo change the enum's raw values
DTo create new enum cases dynamically
Explain how computed properties work inside Swift enums and give an example.
Think about a variable that calculates its value each time you ask for it.
You got /3 concepts.
    Describe the role of methods inside Swift enums and why they are useful.
    Consider how you might add actions related to each enum case.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the purpose of adding methods to an enum in Swift?
      easy
      A. To inherit properties from other enums
      B. To store additional data inside enum cases
      C. To perform actions or calculations related to enum cases
      D. To convert enums into classes automatically

      Solution

      1. Step 1: Understand enum methods

        Enum methods allow you to add functions that perform tasks related to the enum's cases.
      2. Step 2: Differentiate from other enum features

        Enums do not store extra data like classes; methods help organize related actions.
      3. Final Answer:

        To perform actions or calculations related to enum cases -> Option C
      4. Quick Check:

        Enum methods = perform actions [OK]
      Hint: Methods in enums perform actions tied to cases [OK]
      Common Mistakes:
      • Thinking enums can inherit from other enums
      • Confusing methods with stored properties
      • Assuming enums convert to classes automatically
      2. Which of the following is the correct syntax to declare a computed property inside an enum in Swift?
      easy
      A. static var description: String = "Example"
      B. func description() -> String { return "Example" }
      C. let description = "Example"
      D. var description: String { return "Example" }

      Solution

      1. Step 1: Identify computed property syntax

        Computed properties use var with a code block returning a value, like var name: Type { ... }.
      2. Step 2: Check options

        var description: String { return "Example" } matches computed property syntax; B is a method, C is a stored property, D is a static stored property.
      3. Final Answer:

        var description: String { return "Example" } -> Option D
      4. Quick Check:

        Computed property syntax = var with braces [OK]
      Hint: Computed properties use var with braces returning a value [OK]
      Common Mistakes:
      • Using func instead of var for computed properties
      • Declaring computed properties as let constants
      • Confusing static stored properties with computed ones
      3. Consider this Swift enum with a computed property and method:
      enum Direction {
          case north, south, east, west
      
          var isVertical: Bool {
              return self == .north || self == .south
          }
      
          func description() -> String {
              switch self {
              case .north: return "Up"
              case .south: return "Down"
              case .east: return "Right"
              case .west: return "Left"
              }
          }
      }
      
      let dir = Direction.east
      print(dir.isVertical)
      print(dir.description())

      What is the output?
      medium
      A. false Right
      B. true Right
      C. false East
      D. true East

      Solution

      1. Step 1: Evaluate computed property isVertical

        For Direction.east, isVertical checks if east == north or south, which is false.
      2. Step 2: Evaluate description() method

        Switch on east returns "Right" string.
      3. Final Answer:

        false Right -> Option A
      4. Quick Check:

        east isVertical = false, description = Right [OK]
      Hint: Check enum case matches in computed property and switch [OK]
      Common Mistakes:
      • Assuming east is vertical
      • Confusing method return values with case names
      • Forgetting to call method with parentheses
      4. This Swift enum code has an error:
      enum Status {
          case success, failure
      
          var message: String {
              switch self {
              case .success:
                  return "Success"
              case .failure
                  return "Failure"
              }
          }
      }

      What is the error and how to fix it?
      medium
      A. Computed property must be a function; change to func message() -> String
      B. Missing colon after case .failure; add ':' after .failure
      C. Enum cases must have raw values; add raw values to cases
      D. Return statements are not allowed in computed properties; remove returns

      Solution

      1. Step 1: Identify syntax error in switch cases

        Case .failure is missing a colon ':' after it, causing a syntax error.
      2. Step 2: Fix the syntax

        Add ':' after case .failure to correct the switch syntax.
      3. Final Answer:

        Missing colon after case .failure; add ':' after .failure -> Option B
      4. Quick Check:

        Switch case syntax requires ':' [OK]
      Hint: Switch cases must end with a colon ':' [OK]
      Common Mistakes:
      • Thinking computed properties need func keyword
      • Adding raw values unnecessarily
      • Removing return statements inside computed properties
      5. You want to create an enum Light with cases red, yellow, and green. Add a computed property time that returns the duration in seconds for each light: red = 30, yellow = 5, green = 25. Also add a method next() that returns the next light in the traffic cycle (red -> green -> yellow -> red). Which implementation is correct?
      hard
      A. enum Light { case red, yellow, green var time: Int { switch self { case .red: return 30 case .yellow: return 5 case .green: return 25 } } func next() -> Light { switch self { case .red: return .green case .green: return .yellow case .yellow: return .red } } }
      B. enum Light { case red, yellow, green func time() -> Int { if self == .red { return 30 } else if self == .yellow { return 5 } else { return 25 } } func next() -> Light { if self == .red { return .yellow } else if self == .yellow { return .green } else { return .red } } }
      C. enum Light { case red, yellow, green var time: Int { if self == .red { return 30 } else if self == .yellow { return 5 } else { return 25 } } func next() -> Light { switch self { case .red: return .yellow case .yellow: return .green case .green: return .red } } }
      D. enum Light { case red, yellow, green var time: Int { switch self { case .red: return 25 case .yellow: return 30 case .green: return 5 } } func next() -> Light { switch self { case .red: return .green case .green: return .yellow case .yellow: return .red } } }

      Solution

      1. Step 1: Check computed property time values

        enum Light { case red, yellow, green var time: Int { switch self { case .red: return 30 case .yellow: return 5 case .green: return 25 } } func next() -> Light { switch self { case .red: return .green case .green: return .yellow case .yellow: return .red } } } correctly returns 30 for red, 5 for yellow, and 25 for green as required.
      2. Step 2: Check next() method cycle order

        enum Light { case red, yellow, green var time: Int { switch self { case .red: return 30 case .yellow: return 5 case .green: return 25 } } func next() -> Light { switch self { case .red: return .green case .green: return .yellow case .yellow: return .red } } } cycles red -> green -> yellow -> red, matching the problem statement.
      3. Final Answer:

        enum Light { case red, yellow, green var time: Int { switch self { case .red: return 30 case .yellow: return 5 case .green: return 25 } } func next() -> Light { switch self { case .red: return .green case .green: return .yellow case .yellow: return .red } } } -> Option A
      4. Quick Check:

        Correct time values and cycle order = enum Light { case red, yellow, green var time: Int { switch self { case .red: return 30 case .yellow: return 5 case .green: return 25 } } func next() -> Light { switch self { case .red: return .green case .green: return .yellow case .yellow: return .red } } } [OK]
      Hint: Match switch cases exactly to problem requirements [OK]
      Common Mistakes:
      • Mixing up time values for colors
      • Incorrect next() cycle order
      • Using func instead of computed property for time
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard