likes
comments
collection
share

Flutter开发 之 extension扩展

作者站长头像
站长
· 阅读数 41

非常有用

一、描述

  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 也可以调用,返回值在扩展内部判断就行;

Flutter开发 之 extension扩展

  • 扩展 Widget 类型,使其可以链式调用出来 align()、center()等的这些方法,返回被包装后的组件,简化代码,提高效率;

Flutter开发 之 extension扩展

  • 扩展 Function()类型和Future Function()类型

    • 使得普通Function可以调用 exThrottle() 扩展,实现方法的节流;
    • 使得Future方法可以调用 exStartOnce() 扩展,实现对于异步操作的过滤拦截处理;

Flutter开发 之 extension扩展

四、目录规范

  • 所有的扩展按照扩展类型区分文件
  • 所有文件归属扩展文件夹

Flutter开发 之 extension扩展

转载自:https://juejin.cn/post/7361253974052143113
评论
请登录