Dart中的分组/子设置枚举案例

时间:2019-12-03 18:08:54

标签: flutter dart

我正在学习Flutter / Dart,我还不太清楚如何解决以下问题(使用Swift描述。

enum Languages {
    case german
    case spanish
    case french
    case english

    static var germanic: [Languages] {
        return [.german, .english]
    }

    static var romance: [Languages] {
        return [.spanish, .french]
    }
}

enum LanguageTypes {
    case germanic
    case romance

    var languages: [Languages] {
        switch self {
        case .germanic: return [.german, .english]
        case .romance: return [.spanish, .french]
        }
    }
}

let germanicLangs = Languages.germanic
let romanceLangs = LanguageTypes.romance.languages
print(germanicLangs) // [.german, .english]
print(romanceLangs) // [.spanish, .french]

基本上,我有一种语言列表,我想根据它们的语言家族来组织它们。在我脑海中,我想到使用Swift作为参考的两种方法是要么创建第二个枚举(LanguageTypes),然后将其用作家庭结构的访问点,或创建与Languages枚举本身中的族一样多的变量。

我个人倾向于前者,但我可以和后者或类似的东西一起做。 但是,经过几个小时的研究,似乎Dart上都不是实际的选择。

所以我的问题是; 经验丰富的Dart开发人员将如何解决此类问题?

最初的直觉是,我首先定义某种Language接口,然后为每种不同的语言编写一个新类。每个插入Language接口的特定语言类,然后我只写一个结构Languages,在其中我将所有系列转储为对象数组。

您已经可以想象到,仅提及struct一词,我就已经不在Dart范围内了,但是现在我很茫然。老实说,我想尝试的每一种策略要么感觉超级笨拙,要么由于语言的限制而根本无法实现。

我很难适应“飞镖方式”(如果有的话)这类问题的思考。

0 个答案:

没有答案