Flutter Dart Extension-methods使用

Dart 2.7之后,支持对已有类型进行扩展如:

void test(){
  bool isMobileNumber= "电话号码".isMobileNumber;
}

即对String类扩展了isMobileNumber方法。如何实现呢?

步骤一

在项目根目录中创建analysis_options.yaml文件,把以下内容贴进去

analyzer:
  enable-experiment:
    - extension-methods

据有关资料解释,截至目前为止,扩展方法还处于实验性的支持,以后更新可能不用这么麻烦。

步骤二

将你的pubspec.yaml文件的environment sdk指定大于2.7.0,当然前提是你的dart版本必须大于2.7.0才可以这么写。写完之后运行 flutter pub get,更新一下配置。

步骤三

在dart文件中编写扩展方法,dart文件最好是单独出来的,比如我创建string_extension.dart文件,编写如下:

/// 字符串扩展方法
extension StringExtension on String{
  /// 是否是电话号码
  bool get isMobileNumber {
    if(this?.isNotEmpty != true) return false;
    return RegExp(r'^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8])|(19)[0-9])\d{8}$').hasMatch(this);
  }
}

然后就可以愉快地使用扩展方法啦。

你可能感兴趣的:(Flutter Dart Extension-methods使用)