2014-11-24 53 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