I';我是swift新手,有人能解释一下如何使用闭包作为枚举的原始值吗

I';我是swift新手,有人能解释一下如何使用闭包作为枚举的原始值吗,swift,enums,closures,Swift,Enums,Closures,我是swift新手,有人能解释一下如何使用闭包作为枚举的原始值吗 enum Tpi:Function{ case func1={()->Void in print("say hi!")} } var xsel=Tpi.func1.rawValue xsel() 函数不是Swift中的现有类型 Swift enum只能从RawRepresentable类型继承,因此不可能将函数用作枚举的RawValue(老实说,这有点奇怪) 以下是实现类似目标的方法: enum Tpi {

我是swift新手,有人能解释一下如何使用闭包作为枚举的原始值吗

enum Tpi:Function{
    case func1={()->Void in 

 print("say hi!")}
}

var xsel=Tpi.func1.rawValue
xsel()

函数
不是Swift中的现有类型

Swift enum只能从
RawRepresentable
类型继承,因此不可能将函数用作枚举的RawValue(老实说,这有点奇怪)

以下是实现类似目标的方法:

enum Tpi {
    case func1

    var function: (() -> Void) {
        switch self {
        case .func1:
            return {
                print("say hi!")
            }
        }
    }
}

var xsel = Tpi.func1.function
xsel()