Можно ли передать имя типа enum в качестве аргумента в Swift?

Я пытаюсь выяснить, можно ли передать тип enum так же, как вы можете передатьClass объекты в Swift.

Мой фактический вариант использования немного сложнее, но для обсуждения, скажем, у меня есть дваInt перечисления:

enum Foo: Int, CustomStringConvertible {
    case firstFoo = 0
    case anotherFoo = 1
    var description: String {
        switch self {
        case .firstFoo:
            return "Hello Foo"
        case .anotherFoo:
            return "Goodbye Foo"
        }
    }
}

enum Bar: Int, CustomStringConvertible {
    case firstBar = 0
    case anotherBar = 1
    var description: String {
        switch self {
        case . firstBar:
            return "Hello Bar"
        case . anotherBar:
            return "Goodbye Bar"
        }
    }
}

Я хотел бы иметь возможность написать такую ​​функцию:

func justAnExample(whichEnum: enum) {
    let val = whichEnum(rawValue: 0)
    print("description: \(String(val))")
}

И затем используйте это так:

justAnExample(Foo)
// prints: "description: Hello Foo"
justAnExample(Bar)
// prints: "description: Hello Bar"

Это возможно? Если это так, что является подписьюwhichEnum в объявлении функции?

Ответы на вопрос(2)

Ваш ответ на вопрос