我怎样才能在飞镖中复合吸气剂以避免重复
how can I compound getters in dart to avoid duplication
我有很多用于本地化的 getter(例如,它们来自 json 文件),例如:
String get start {
return localizedValues[locale.languageCode]!['start']!;
}
String get hours {
return localizedValues[locale.languageCode]!['hours']!;
}
String get minutes {
return localizedValues[locale.languageCode]!['minutes']!;
}
String get seconds {
return localizedValues[locale.languageCode]!['seconds']!;
}
所以我想复合它们,因为它们使用了一些通用代码(我试图创建 final someWord = commonCode; 但它没有用,所以我想问一下)
现在,如果我想联系他们,我会使用 myClass.of(context).start 例如。所以,最后,我将使用相同的方式达到,但在上面的 class 中,如果你帮助我,我不会做任何重复。所以,我需要你的帮助来避免重复。
您可以使用这个方法,并缩短代码:
String getTime(String languageCode, String time) {
return localizedValues[languageCode]![time]!;
}
getTime("1529", "seconds");
getTime("859", "mitutes");
getTime("9632", "hours");
我建议使用数据 class 来保存本地化数据,而不仅仅是地图,或者使用 i10n 等包来为您进行翻译。
有几种方法可以缩短此代码。对于初学者,您可以将 localizedValues[locale.languageCode]!
提取到它自己的 getter,如下所示:
Map<String, String> get localeValues => localizedValues[locale.languageCode]!;
然后你所有的方法都变得更短了:
String get seconds {
return localeValues['seconds']!;
}
此外,您可以通过删除函数体并改用箭头函数来缩短 getters,就像我在上面对 localeValues
:
所做的那样
String get seconds => localeValues['seconds']!;
对所有 getter 执行此操作,您的代码现在更短了。
我有很多用于本地化的 getter(例如,它们来自 json 文件),例如:
String get start {
return localizedValues[locale.languageCode]!['start']!;
}
String get hours {
return localizedValues[locale.languageCode]!['hours']!;
}
String get minutes {
return localizedValues[locale.languageCode]!['minutes']!;
}
String get seconds {
return localizedValues[locale.languageCode]!['seconds']!;
}
所以我想复合它们,因为它们使用了一些通用代码(我试图创建 final someWord = commonCode; 但它没有用,所以我想问一下)
现在,如果我想联系他们,我会使用 myClass.of(context).start 例如。所以,最后,我将使用相同的方式达到,但在上面的 class 中,如果你帮助我,我不会做任何重复。所以,我需要你的帮助来避免重复。
您可以使用这个方法,并缩短代码:
String getTime(String languageCode, String time) {
return localizedValues[languageCode]![time]!;
}
getTime("1529", "seconds");
getTime("859", "mitutes");
getTime("9632", "hours");
我建议使用数据 class 来保存本地化数据,而不仅仅是地图,或者使用 i10n 等包来为您进行翻译。
有几种方法可以缩短此代码。对于初学者,您可以将 localizedValues[locale.languageCode]!
提取到它自己的 getter,如下所示:
Map<String, String> get localeValues => localizedValues[locale.languageCode]!;
然后你所有的方法都变得更短了:
String get seconds {
return localeValues['seconds']!;
}
此外,您可以通过删除函数体并改用箭头函数来缩短 getters,就像我在上面对 localeValues
:
String get seconds => localeValues['seconds']!;
对所有 getter 执行此操作,您的代码现在更短了。