2013-10-04 155 views
3

我決定在Dart中實現函數underscore.js庫。Dart和下劃線

我寫了「underscore.dart」的功能如下所示的一些功能。例如:

library underscore; 

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

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

在我的主要飛鏢節目,我加入import語句

import 'underscore.dart'; 

然而,我在「未使用的導入」這一行上得到了持續錯誤,因此沒有任何功能被識別。

但是,當我將'underscore.dart'重新定義爲'mainProg的一部分',並將'mainProg'作爲自己的一個庫時,它確實奏效了。

進一步的測試表明它是導致問題的函數名稱的下劃線。

任何想法?

回答

5

預先設定下劃線表示函數是庫私有的。也就是說,你不能在其他庫中使用它。請參閱Libraries and Visibility

庫不僅提供API,而且還是一個隱私單元:以下劃線(_)開頭的標識符僅在庫中可見。

+0

啊,是的 - 剛剛在文檔中看到了。我會用一個$來代替,除非我可以使用更少的侵入性字符。 – user1721780

+0

不要忘記驗證答案:) –