gpt4 book ai didi

methods - 枚举方法调用解析为 "unused function"

转载 作者:搜寻专家 更新时间:2023-11-01 05:48:12 25 4
gpt4 key购买 nike

我一直在 Swift 和 Xcode Playgrounds 中闲逛。我知道 Swift 枚举比它们的 Obj-C 枚举更强大。所以我想我会制作一个包含颜色作为成员值的枚举,并向枚举添加一个方法来获取颜色的十六进制值。

但是,我得到一个错误——“表达式解析为一个未使用的函数”。我觉得这可能与让方法接受成员值作为参数有关,但我可能错了。代码如下。谁能赐教一下?

enum Color {

case Red,Blue,Yellow

func hexValue (aColor: Color) -> String { //Find hex value of a Color
switch aColor {
case .Red:
return "#FF0000"
case .Yellow:
return "#FFFF00"
case .Blue:
return "#0000FF"
default:
return "???????"
}
}
}

Color.hexValue(Color.Red) //Error: "Expression resolves to an unused function"

最佳答案

static 添加到 hexValue 的声明中以创建一个可以从没有实例的类型调用的类型方法:

enum Color {

case Red,Blue,Yellow

static func hexValue (aColor: Color) -> String { //Find hex value of a Color
switch aColor {
case .Red:
return "#FF0000"
case .Yellow:
return "#FFFF00"
case .Blue:
return "#0000FF"
default:
return "???????"
}
}
}

Color.hexValue(Color.Red) // "#FF0000"

或者您可以通过将其设为计算属性 使其变得更好:

enum Color {

case Red,Blue,Yellow

var hexValue: String {
get {
switch self {
case .Red: return "#FF0000"
case .Yellow: return "#FFFF00"
case .Blue: return "#0000FF"
}
}
}
}

Color.Red.hexValue // "#FF0000"

关于methods - 枚举方法调用解析为 "unused function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26206801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com