1

库的基本用法是定义其名称,如:

#library('Name');

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

#library('Messenger');

恐怕这会与其他事情发生冲突。我正在寻找的是这样的:

#import('Foo.Messenger');

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

解决此问题的推荐方法是什么?据我了解,人们会像这样引用您的图书馆:

#import('package:Foo.Messenger')
4

2 回答 2

1

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

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

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

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

var item = new myLib.SomeClass();

有关更多详细信息,请参阅此链接

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

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

于 2012-08-03T13:03:05.910 回答
1

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

于 2012-08-03T21:28:10.240 回答