2010-07-15 54 views
14

如何讓一個類中的受保護函數對Scala中的所有類都可訪問?Scala中的受保護函數

+2

當單元測試的內部功能給出類包保護分類器真的很方便(你不想公開復雜的方法,但你會喜歡運行一個單元測試) – monzonj 2013-02-15 15:11:36

回答

39

你可以做

protected[packagename] def foo() {...} 
+3

是的,但讓我們調用它是什麼:一種方法。 Scala中的函數完全是其他功能。 – 2010-07-15 02:16:25

+3

不應該是'private [packagename]'嗎? – 2013-05-16 23:58:34

+0

然後這是你正在尋找的答案,請標記爲這樣。 – 2015-05-07 15:30:16

11

如果我們注重功能和方法之間的區別,我們可以定義一個對象從Function得出:

protected[packagename] object fn extends (Int=>Int) { 
    def apply(n: Int) = 2*n 
}