假设我有这个顶级函数:
function log(String message) {
print(message);
}
是否可以在 Dart 中重写此函数?
最佳答案
简单的答案:不。顶级不能被子类化,因此不可能覆盖。
更长的答案:您可以“掩盖”它们,但根据您的用例,这可能不是您想要的。
如果您想更改由库本身调用的第 3 方库的顶级方法的行为,这是不可能的(至少,我不知道有什么方法可以做到这一点) )。
如果你只是想定义一个同名的方法在你自己的库中使用,你可以只定义该方法并使用它。如果导入的dart文件中同时需要库和你自己的方法,你可以为库添加前缀,并在带或不带前缀的情况下调用它以区分方法:
import "lib1.dart" as mylib;
void main() {
log(); // log() method defined in this file
mylib.log(); // log() method defined in lib1.dart
}
关于function - 是否可以重写 Dart 中的顶级函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21001263/