【发布时间】:2017-06-01 19:51:34
【问题描述】:
我有两个游戏项目:动物园 1 和动物园 2。两者都有一个名为动物的类。为了避免同名的两个类之间发生冲突,我将它们包装在函数中。 Dart 如何处理这种情况?通过包或库?用作命名空间的大师班?如果是这样,那么它如何将它们转换为 javascript?
【问题讨论】:
标签: dart
我有两个游戏项目:动物园 1 和动物园 2。两者都有一个名为动物的类。为了避免同名的两个类之间发生冲突,我将它们包装在函数中。 Dart 如何处理这种情况?通过包或库?用作命名空间的大师班?如果是这样,那么它如何将它们转换为 javascript?
【问题讨论】:
标签: dart
Dart 没有命名空间。您可以为此使用导入前缀
import 'package:zoo1/zoo1.dart' as zoo1;
import 'package:zoo2/zoo2.dart' as zoo2;
main() {
print(new zoo1.Animal());
print(new zoo2.Animal());
}
您也可以仅将前缀用于其中之一
import 'package:zoo1/zoo1.dart';
import 'package:zoo2/zoo2.dart' as zoo2;
main() {
print(new Animal());
print(new zoo2.Animal());
}
如果您想同时导入两者,但只想使用来自zoo2 的Animal,那么您可以隐藏一个
import 'package:zoo1/zoo1.dart' hide Animal;
import 'package:zoo2/zoo2.dart';
main() {
print(new Animal()); // uses Animal from zoo2
}
我假设对于 JS,他们总是使用一些前缀来消除歧义。
【讨论】: