计算 属性

Computed Property

我有这段代码,但里面有问题 我需要使用结构和计算属性根据红色、绿色和蓝色值的值确定颜色名称。

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)

我该如何解决?

计算 属性 根据其他值(在对象中)计算其值。

一个有效的解决方案是switch语句

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"
        }
    }
}