Преобразуйте массив POST назад в строковые данные POST

Другой альтернативой является switch для инициализаторов Foo и Bar:

init?(base: String, parameter: String?) {
    switch (base, parameter.flatMap { Foo.init(rawValue: [110]) ?? Bar(rawValue: [110]) } as Any?) {
    case ("a", let foo as Foo):
        self = .a(foo)
    case ("b", _):
        self = .b
    case ("c", let bar as Bar):
        self = .c(bar)
    default:
        return nil
    }
}

Недостатком является то, что если Foo и Bar имеют общие случаи, то вы можете не получить результат, который вы хотите. Кроме того, если число случаев увеличится, то также может появиться выражение на switch.

8
задан Jrgns 30 October 2008 в 16:29
поделиться