我可以说两个游戏项目:动物园1和动物园2.两个都有一个名为animal的类.为了避免两个具有相同名称的类之间的冲突,我将它们包装在函数中.Dart如何处理这种情况?通过包或库?用作命名空间的主类?如果是这样,那么它如何将它们转换为javascript?
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总是使用一些前缀来消除歧义.