我决定在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'成为一个独立的库时,它确实有效。
进一步测试表明,导致问题的是函数名称的下划线。
有什么想法吗?
答案 0 :(得分:14)
前置下划线表示该函数是库私有的。也就是说,您不能在其他库中使用它。请参阅Libraries and Visibility。
库不仅提供API,而且是隐私单元:以下划线(_)开头的标识符仅在库内可见。