首页 > 解决方案 > 我是 swift 新手,有人可以解释如何将闭包用作枚举的 rawValues

问题描述

我是 swift 的新手,有人可以解释如何将闭包用作枚举的 rawValues。

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

 print("say hi!")}
}

var xsel=Tpi.func1.rawValue
xsel()

标签: swiftenumsclosures

解决方案


Function不是 Swift 中的现有类型。

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

这是实现类似目标的一种方法:

enum Tpi {
    case func1

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

var xsel = Tpi.func1.function
xsel()

推荐阅读