我可以说两个游戏项目:动物园1和动物园2.两个都有一个名为animal的类。为了避免两个具有相同名称的类之间的冲突,我将它们包装在函数中。 Dart如何处理这种情况?通过包或库?用作命名空间的主类?如果是这样,那么它如何将它们转换为javascript?
答案 0 :(得分:5)
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());
}
如果您要同时导入这两个,但只想使用Animal
中的zoo2
,那么您可以隐藏一个
import 'package:zoo1/zoo1.dart' hide Animal;
import 'package:zoo2/zoo2.dart';
main() {
print(new Animal()); // uses Animal from zoo2
}
我认为对JS来说,他们总是使用一些前缀来消除歧义。