我想print在我的班级中有一个方法,我也希望能够print在其中使用
例子:
class A {
String val;
void print() {
print(val);
}
}
Run Code Online (Sandbox Code Playgroud)
usingprint会引用 class 的方法A,如何指定要调用的方法的完整路径?
解决名称冲突的几种不同方法:
正如Christopher Moore提到的,您可以dart:core使用前缀显式导入。请注意,如果您不想为from 的所有内容dart:core添加前缀,则可以将其导入两次,一次导入全局命名空间,另一次导入带前缀的命名空间:
import 'dart:core';
import 'dart:core' as core;
Run Code Online (Sandbox Code Playgroud)
然后您就可以core.print在您的print方法中显式使用并print在其他地方正常使用。
请注意,如果您有一个方法尝试在同一个 Dart 库中调用具有相同名称的全局函数,您可以将代码拆分为多个文件,或者您的库可以使用前缀导入自身:
foo.dart:
import 'foo.dart' as foo;
class SomeClass {
void f() => foo.f();
}
void f() {
// Do stuff.
}
Run Code Online (Sandbox Code Playgroud)
print您也可以使用不同的名称显式创建对普通函数的另一个引用:
final _print = print;
class A {
String val;
void print() {
_print(val);
}
}
Run Code Online (Sandbox Code Playgroud)