我正在学习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范围内了,但是现在我很茫然。老实说,我想尝试的每一种策略要么感觉超级笨拙,要么由于语言的限制而根本无法实现。
我很难适应“飞镖方式”(如果有的话)这类问题的思考。