如何在Dart中为bool类型创建reverse方法?遇定义无效问题求助
解决Dart中为bool类型添加reverse方法的问题
直接修改Dart SDK自带的bool.dart文件是行不通的——项目运行时依赖的是官方预编译好的核心库,本地修改的源码不会被加载到运行环境中,所以你添加的方法根本不会被识别。
正确的做法是使用Dart的扩展方法(Extension),这是官方推荐的给已有类型新增方法的方式,不用碰SDK源码,还能在任何项目里复用:
- 定义扩展方法
在项目里新建一个dart文件(比如bool_extension.dart),写入以下代码:
extension BoolExtension on bool { // 用!this实现反转,比三元表达式更简洁 bool reverse() { return !this; } }
- 使用扩展方法
在需要调用reverse()的文件里导入这个扩展:
import 'path/to/bool_extension.dart'; // 之后就能直接调用方法了 _isLoading = _isLoading.reverse();
这样就能正常实现布尔值反转的功能,完全没有兼容性问题。
内容的提问来源于stack exchange,提问作者808code
相关产品推荐
相关产品推荐

