文章目录
最近在学习Flutter,还是遇到Extension这个高级功能,所以有必要去了解一下。
Flutter 是基于Dart这个语言的。在Dart 2.7 版本中,新加入了一个重要的语法功能,叫做extension。Extension
的主要功能给已经存在的类添加新的member function
,往里面增加新的函数。通过extension, 我们可以向诸如 Iterable , String 这样的常用类里面增加一些方便的函数。
扩展 String 的功能
我们创建一个文件名为 “string_parser_extension.dart”,其中的内容如下。
extension ParseNumbers on String {
int parseInt() {
return int.parse(this);
}
double parseDouble() {
return double.parse(this);
}
}
需要注意的是,在extension函数中,我们可以通过this
来访问string 中原有的其它方法
。这里的this指的是当前的string instance
。
使用扩展功能
要使用这两个extension函数,只需要 import
‘{文件路径}:string_parser_extension.dart’ , 然后我们就可以对代码中的 string 类型使用这两个函数了。
final d = '2';
print(d.parseInt());
另外如下的写法也都是可以的:
dynamic v = '1';
print(v.parseInt());
var v = '1';
print(v.parseInt());
也就是说,通过extension来为 String class 增加方便的功能,可以增加服用,简化代码。