Flutter开发 之 extension扩展
非常有用
一、描述
extension 是一种用于 向已有的Dart类添加新的方法或功能 的机制。使用 extension 关键字可以在不修改原始类定义的情况下,为该类添加新的方法,以提供更多的功能或简化代码结构。
二、基本语法
- extension 声明扩展的关键字
- ExName 此扩展的名称(按照语义规范声明即可)
- on 扩展关键字
- TypeName 要扩展的类型或类(如果此值允许为空可以追加*?*,这样的话内部需要判断处理)
扩展内部即可定义 get 属性或 成员方法
extension ExName on TypeName {
int get intValue => this == true ? 1 : 0;
String Function() exMethod() {}
}
三、代码示例
- 扩展 int 原始类型,使其可以链式调用出来一个 boolValue 的 get 属性,获取自身转为 bool 的值
注意:int? 的意思是 this 即使是 null 也可以调用,返回值在扩展内部判断就行;
- 扩展 Widget 类型,使其可以链式调用出来 align()、center()等的这些方法,返回被包装后的组件,简化代码,提高效率;
-
扩展 Function()类型和Future Function()类型
- 使得普通Function可以调用 exThrottle() 扩展,实现方法的节流;
- 使得Future方法可以调用 exStartOnce() 扩展,实现对于异步操作的过滤拦截处理;
四、目录规范
- 所有的扩展按照扩展类型区分文件
- 所有文件归属扩展文件夹
转载自:https://juejin.cn/post/7361253974052143113