如何在Dart中处理更深层的库层次结构?

时间:2012-08-03 08:28:12

标签: dart

库的基本用法是将其名称定义为:

#library('Name');

就我而言,我想定义“嵌套”或“更深层”的库层次结构。所以,如果我有一个名为Foo的框架,那就说我构建了库Messenger

#library('Messenger');

我担心会与别的东西发生冲突。我正在寻找的是:

#import('Foo.Messenger');

很明显,信使库是Foo库集的一部分。

建议的方法是什么?据我了解,人们会将您的图书馆称为:

#import('package:Foo.Messenger')

2 个答案:

答案 0 :(得分:1)

如果您担心您的库可能与命名空间冲突,那么在使用它时需要定义前缀。但是,在使用库时,您无法强制其他人使用前缀。

要自己使用前缀,您可以像这样导入:

#import('lib/library.dart', prefix: 'myLib');

现在从该库导入的任何东西都需要这样调用:

var item = new myLib.SomeClass();

有关详细信息,请参阅此link

您的问题的最后一晚定义的一个包是一种分发和导入第三方库的方法,可能是一个或多个。它仍在进行大量的开发,但它不会改变导入库后调用库的方式。

有关Dart中Pub包管理器的信息,请参阅此link

答案 1 :(得分:1)

图书馆员很快就会改变,见http://news.dartlang.org/2012/07/draft-spec-changes-to-library-and.html。请注意,您的问题已在本文档中得到解答,因为它说:广泛使用的库名称应遵循众所周知的反向互联网域名约定。