2014-11-24 101 views
3

目前,我正在學習Scala,但還是有那麼多的東西,我只是不明白......斯卡拉隱含參數和日本笑臉「foldLeft」

所以,我隨意衝浪一些堆棧溢出時,野外答案出現了:https://stackoverflow.com/a/19093282/3529754

這個答案利用隱式參數和foldLeft函數,並且 - yes看起來像一個 - 日本笑臉。問題的源代碼:

class Account(implicit transactionLog: TransactionLog) { 
    def balance = transactionLog.foldLeft(_ + _) 
} 

class TransactionSlip(from: Account, to: Account, amount: BigDecimal) 

在這種情況下隱式關鍵字意味着什麼?笑臉做什麼?我只是沒有從片段中得到它...

在此先感謝。

回答

4

兩個答案:

+0

謝謝,這做我需要了解的代碼。 – bash0r 2014-11-24 14:37:23

+0

如果你剛剛學習Scala,我會說總是問這樣的問題,但不要太擔心能夠立即編寫這樣的代碼。這可能是'更好'的風格等,但很難立即想到隱含和下劃線。你總是可以獲得風格上的幫助,並學會寫這篇文章,但如果它沒有點擊,那在我看來沒有問題。 – Barry 2014-11-24 15:10:24

+0

@Barry我來自一個功能背景(例如Haskell和一些在C#中實現更高級類型的不太成功的試驗......)。思考並不是一個問題,而不是將Scala的語法與我用來了解的其他語言的語法進行匹配。由於時尚簡潔和優雅,我喜歡思考功能。 :) – bash0r 2014-11-24 15:14:44