Flutter 扩展的使用
Usage of extensions in Flutter
很抱歉这个问题,但我是 Flutter 的新手。
我通常在 swift 中编写代码,并且使用 UIKit 框架。有时向 Class 添加扩展名非常有用,我在其中添加与 Class 相关的函数以获得干净的代码。
是否correct/professional在Flutter中使用扩展?
例如:
extension on _MapViewScreenState {
double calculateDistance(lat1, lon1, lat2, lon2) {
var p = 0.017453292519943295;
var c = cos;
var a = 0.5 -
c((lat2 - lat1) * p) / 2 +
c(lat1 * p) * c(lat2 * p) * (1 - c((lon2 - lon1) * p)) / 2;
return 12742 * asin(sqrt(a));
}
// Other functions
//...
}
此扩展包含 _MapViewScreenState 使用的函数。
Dart 2.7 中引入的名为扩展方法的功能允许我们向现有库添加新功能。虽然它不允许我们直接修改现有代码,但它使我们能够以一种易于阅读和使用的方式自定义 class。
我们还可以为 getters、setters 和 operators 编写扩展,这些称为扩展成员。它被命名为“扩展方法”,以便来自 Kotlin、C# 的开发人员也可以与之相关。
extension ExtendedString on String {
bool get isValidName {
return !this.contains(new RegExp(r'[0–9]'));
}
}
很抱歉这个问题,但我是 Flutter 的新手。 我通常在 swift 中编写代码,并且使用 UIKit 框架。有时向 Class 添加扩展名非常有用,我在其中添加与 Class 相关的函数以获得干净的代码。
是否correct/professional在Flutter中使用扩展?
例如:
extension on _MapViewScreenState {
double calculateDistance(lat1, lon1, lat2, lon2) {
var p = 0.017453292519943295;
var c = cos;
var a = 0.5 -
c((lat2 - lat1) * p) / 2 +
c(lat1 * p) * c(lat2 * p) * (1 - c((lon2 - lon1) * p)) / 2;
return 12742 * asin(sqrt(a));
}
// Other functions
//...
}
此扩展包含 _MapViewScreenState 使用的函数。
Dart 2.7 中引入的名为扩展方法的功能允许我们向现有库添加新功能。虽然它不允许我们直接修改现有代码,但它使我们能够以一种易于阅读和使用的方式自定义 class。
我们还可以为 getters、setters 和 operators 编写扩展,这些称为扩展成员。它被命名为“扩展方法”,以便来自 Kotlin、C# 的开发人员也可以与之相关。
extension ExtendedString on String {
bool get isValidName {
return !this.contains(new RegExp(r'[0–9]'));
}
}