【发布时间】:2016-01-03 03:06:03
【问题描述】:
我正在尝试学习 scala 并了解函数和方法之间的区别。
这是我写的非常简单的代码-
scala> class C ( acc:Int) {
| val minc = ( acc + 1 )
| val func = { () => acc += 3 }
| }
scala> val c1 = new C(3)
c1: C = C@55e610e3
scala> c1.minc
res2: Int = 4
scala> c1.func
res3: () => Int = <function0>
我了解在实例化对象 c1 上调用函数 func 的结果存储为另一个表达式 res3。
但是我想从 C 类中的匿名函数 () = acc +3 中获取价值。
如果我尝试将参数传递给 res3 表达式,scala 会抛出错误
scala> res3(4)
<console>:11: error: too many arguments for method apply: ()Int in trait Function0
res3(4)
^
如何从中获得价值?
PS - 我刚开始使用 scala,不知道这是否可能?
【问题讨论】:
标签: scala functional-programming