Search code examples
swiftcomputed-properties

Computed Property


I have this code and there is a problem in it I need to determain the colour name based on the value of the red , the green and the blue value using structure and computed properties.

struct Colour {
  var red:Int
  var green:Int
  var blue:Int
  var colourName: String
  var chosenColour: String {
    return "The colour is \(colourName)"
  }
}
 
var colour = Colour(red:255 , green:255 , blue:255, 

colourName:"White" )
print(colour.chosenColour)

How can I fix it?


Solution

  • A computed property calculates its value depending on other values (in the object).

    An efficient solution is a switch statement

    struct Colour {
        var red: Int
        var green: Int
        var blue: Int
        var colourName: String
        var chosenColour: String {
            switch (red, green, blue) {
                case (255, 255, 255): return "White"
                case (0, 0, 0): return "Black"
                case (255, 0, 0): return "Red"
                case (0, 255, 0): return "Green"
                case (0, 0, 255): return "Blue"
                default: return "Mixed Colour"
            }
        }
    }