Swift Programming

Swift Enumerations (Enums)

Written by admin October 7, 2022 0 comment

enumeration swift programming

An enum is a user-defined data type that consists of a set of related values. Enums are often used to represent a group of related options, such as the days of the week or the suits in a deck of cards.

Enums are a great way to organize your code and make it more readable. They can also help you avoid errors by only using valid values.

Here are the pros of using an enum:

  • Enums can be used to create well-defined groups of related values, which can make code more readable and maintainable
  • Enums can be used to define types with a finite set of values, which can be useful when working with data that can only take on a limited number of values 
  • Enums can be helpful for managing complex data
  • Enums can be used to group related values together, which can make code more organized and easier to read

Enum Syntax 

The enum syntax is a keyword used to declare an enumerated type. An enumerated type is a type that consists of a set of named values. The following case could be used for a compass:

enum syntax

How to use a Switch Statement with an Enum

A switch statement in Swift allows you to execute different blocks of code based on the value of a particular expression.

switch statement enum

What is the CaseIterable protocol?

CaseIterable is a protocol in Swift that allows for an easy way to iterate over all cases of an enum. This can be useful when you need to perform an action for each case of an enum.

enum caseiterable

What are Associated Values in Swift?

Associated values are values that can be stored along with an enum case.

enum associated value

There are many reasons to use associated values with an enum in Swift. One common use case is to store additional information about each enum case. This can be useful when you need to store different types of data with each case, or when the data for each case is too complex to fit into a single property.

Another reason to use associated values is to provide more context for each enum case. This can be helpful when you have a long list of cases and you want to provide a brief description for each one.

Associated values can also be used to make your code more flexible. For example, you can use associated values to define a case that can match multiple different values. This can be useful when you want to write code that can work with different types of data.

What are raw values for enums in swift? 

The raw values for enums in swift are the underlying values associated with each enum case. These values can be integers, strings, or any other type.

enum raw value

Implicitly assigned raw values are assigned to enumeration cases when the raw value is not explicitly defined.

Conclusion

  • Swift enumerations are a way of defining a group of related values in a structured way
  • Enumerations can have a number of different properties, including “rawValue” and “associatedValue”
  • Enumerations can be used in a number of different ways, including in “switch” statements and “for-in” loops

Further reading:

Code

enum Compass: CaseIterable {
case north
case east
case south
case west
}

var playerMove = Compass.north

switch playerMove {
case .north: print("player moved north")
case .east: print("player moved east")
case .south: print("player moved south")
case .west: print("player moved west")
}/

for direction in Compass.allCases {
print("The compass points \(direction).")
}/

// Associated Values
enum FavoriteColor {
case red(String)
case blue(String)
case green(String)
}

let favouriteColor = FavoriteColor.red("Ben")

// Raw Values
enum PlayerPosition: String {
case north = "north"
case east = "east"
case south = "south"
case west = "west"
}