飞镖和下划线

时间:2013-10-04 10:16:57

标签: dart

我决定在Dart中实现函数underscore.js库。

我在'underscore.dart'中编写了函数,其中的一些示例函数如下所示:

library underscore;

List _filter (ff, List s) => return s..retainWhere(ff);

List _dropWhile(ff,List s) => s.skipWhile(ff).toList();

在我的主Dart程序中,我添加了import语句

import 'underscore.dart';

但是,我在“未使用的导入”行中遇到了持久性错误,因此没有识别出任何功能。

但是,当我将'underscore.dart'重新定义为'mainProg的一部分'并使'mainProg'成为一个独立的库时,它确实有效。

进一步测试表明,导致问题的是函数名称的下划线。

有什么想法吗?

1 个答案:

答案 0 :(得分:14)

前置下划线表示该函数是库私有的。也就是说,您不能在其他库中使用它。请参阅Libraries and Visibility

  

库不仅提供API,而且是隐私单元:以下划线(_)开头的标识符仅在库内可见。