dart中“library”关键字的确切含义

时间:2014-01-26 15:30:39

标签: dart

我知道这个关键字应该用在一些自定义库中, 但当我放弃它时,什么都没发生(至少我没有注意到任何东西), 进口仍然很好,私人成员保持私密。

有人可以解释Dart中的“库”关键字吗?

2 个答案:

答案 0 :(得分:7)

更新2018-03-05

part of因为一段时间接受了一个URI,这减少了library对少数edg3案例的需求。

更新2015-11-27

通过最近的更改,两个导入的无名库不再产生警告。计划是使库声明完全是可选的。


库声明是可选的。如果省略,则库名称默认为"" 在某些情况下(pub build),如果两个库具有相同的名称,则会出现错误,因此通常应该设置正确的库名称。

在一个由一个库组成的简单命令行应用程序中,通常可以省略库声明。

来自Dart language spec

  

隐式命名的库具有空字符串作为其名称。

     

库的名称用于将其绑定到单独编译的部分   库(称为部件),可用于打印等等   一般来说,反思。该名称可能与其他语言相关   演化。

     

广泛使用的库应该避免名称冲突。   Dart的pub包管理系统提供了一种机制   所以。每个pub包都保证有效的唯一名称   强制执行全局命名空间。

答案 1 :(得分:2)

library 关键字在 language tour (libraries and visibility section) 中没有详细记录。 但是,在 creating packages 文档中:

<块引用>

注意:当未指定库指令时,会根据每个库的路径和文件名为每个库生成一个唯一的标记。因此,我们建议您在代码中省略 library 指令,除非您打算生成库级文档。

<块引用>

注意:要在生成的文档中包含任何库级文档,您必须指定库指令。 See issue 1082

所以这是自动生成的,但它不适用于库级文档,不会为没有 library 指令的库生成文档。