在 Swift 中的函数中调用枚举



我对此绝对不知所措。我的教练在寻找什么?有什么建议吗?

开始这样的事情,但我刚刚离开..

enum Color: String {
case blue = "orange"
case red = "green"
case yellow = "purple"
}

func complement(_ color) -> String {
case
}

问题: 创建一个文字,Color三种原色和三种辅助色。然后创建一个函数complement该函数将返回所提供颜色的补色。

Red's complement is green
Blue's complement is orange
Yellow's complement is purple
complement(.red) -> .green
complement(.orange) -> .blue

更新:

enum Color: String {
case red = "red"
case green = "green"
case blue = "blue"
case yellow = "yellow"
case orange = "orange"
case purple = "purple"
}
func compliment(_ color: Color) -> Color {
switch color {
case .red: return .green
case .green: return .red
case .blue: return .orange
break
}
}
let red = Color.red
let compliment = compliment(red)
print(compliment)
let green = Color.green
let compliment = compliment(green)
print(compliment)
let blue = Color.blue
let compliment = compliment(blue)
print(compliment)

错误:变量在其自己的初始值内使用

let compliment = compliment(red)

它为每个实例执行此操作

由于这是家庭作业,我会给你足够的指针来帮助你入门,但不会为你做。

enum Color: String {
case red = "red"
case green = "green"
case blue = "blue"
case yellow = "yellow"
case orange = "orange"
case purple = "purple"
}
func complement(_ color: Color) -> Color {
switch color {
case .red: return .green
case .green: return .red
case .blue: return .orange
// etc.
}
}
let red = Color.red
let compliment = complement(red)
print(compliment)

在不深入色彩理论的情况下,红色的补充不是蓝色 - 它是青色。对于绿色,它是洋红色。蓝色的补充是黄色的。

这更通用。您不必创建具有显式String的类型。

enum Color {
case red
case green
case blue
case orange
case yellow
case violet
}
func complement(_ color: Color) -> Color {
switch color {
case .red: return .green
case .green: return .red
case .blue: return .orange
case .orange: return .blue
case .yellow: return .violet
case .violet: return .yellow
}
}
let red = Color.red
let redComplement = complement(red)
print("Complement of (red) is (redComplement)")
let green = Color.green
let greenComplement = complement(green)
print("Complement of (green) is (greenComplement)")

最新更新