dart - Dart 名称冲突解决方案
问题描述
我在 Dart 中有一个文件,如下所示:
library myLibrary;
bool myFunction(String s) => s == null;
extension StringExtensions on String {
bool get myFunction=> myFunction(this);
}
我基本上想为以前的现有功能添加扩展名,名称相同。
Dart 编译器会抱怨这一点,因为它看不到外部myFunction()
名称,只能看到内部的吸气剂StringExtensions
。
有没有办法让我myFunction
从内部引用外部StringExtensions
?或者我可以通过使用别名将它们分隔在两个不同的文件/库中来实现这一点吗?
解决方案
您可以创建对该函数的私有引用并在您的扩展中使用它:
final _myFunction = myFunction;
extension StringExtensions on String {
bool get myFunction => _myFunction(this);
}
为了避免创建私有引用的开销,您可以为扩展创建一个新文件并myLibrary
使用别名导入:
import 'package:myLibrary/myLibrary.dart' as myLibray;
extension StringExtensions on String {
bool get myFunction => myLibrary.myFunction(this);
}
...
推荐阅读
- amazon-web-services - 如何在 AWS 中设置 EC2 中的负载均衡(我们的服务 .war/.db 部署到差异 EC2 vm 的 wm)?
- azure - 是否可以将私有 IP 地址添加到 Azure 分析服务?
- firebase - 如何在按下提交按钮时验证抖动中的图像?
- java - 有没有办法在 Spring Boot 中验证 @Value?
- laravel - Laravel Backpack select2_from_ajax 选择更改结果和默认值
- entity-framework - 使用 EF6 在 MVC5 中为外键值创建 DropDownList
- docker - 我无法从 LAN 访问暴露的 docker 容器
- django - 蛞蝓唯一性问题的解决方案或如何找到我需要的蛞蝓
- c++ - 如何理解指针数组的地址?
- gradle - 使用闭包配置自定义 Gradle sourceSet