Scala允许我们定义隐式参数。根据确切的类型,选择正确的定义。在下面的示例中,为相同的val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ", Locale.getDefault())
formatter.timeZone = TimeZone.getTimeZone("UTC")
val result = formatter.parse(dateAsString)
类型定义了2个monoid实例,为累积定义了Money
,为了进行比较{。\ n}}。
什么不清楚,Scala编译器如何解决MoneyAdditionMonoid
和MoneyCompareMonoid
函数中使用的monoid?能否请你向我强调一下,我无法理解。
maxDebitOnDay
示例来自
功能反应域建模
书。
答案 0 :(得分:0)
答案可在本书的论坛中找到:Explicit dictionary passing technique in listing 4.3
我们必须明确地传递隐式参数:
ltx是交易清单
maxDebitOnday(ltx)(Monoid.MoneyCompareMonoid)
lbs是余额列表
sumBalances(lbs)(Monoid.MoneyAdditionMonoid)