我想学习scala并理解函数和方法之间的区别。如何从scala中的匿名函数中获取值?
这是非常简单的代码,我写 -
scala> class C (acc:Int) {
| val minc = (acc + 1)
| val func = {() => acc += 3 }
| }
scala> val c1 = new C(3)
c1: C = [email protected]
scala> c1.minc
res2: Int = 4
scala> c1.func
res3:() => Int = <function0>
我理解的实例化对象C1调用函数func的该结果被存储为另一种表达RES3。
但是我想获取价值的匿名函数()= ACC +3即C级
内。如果我试图通过参数RES3表达斯卡拉抛出一个错误
scala> res3(4)
<console>:11: error: too many arguments for method apply:()Int in trait Function0
res3(4)
^
如何从中获得价值?
PS - 我刚刚开始使用scala,不知道这是否完全可能?
谢谢你的解释!但是,当我尝试从功能中获得价值时,我仍然看到错误。 类别c(ACC:智力){ VAL MINC =(ACC + 1) VAL FUNC =()=> ACC + 3 } VAL C1 =新C(5) c1.minc打印6 但是,c1.func打印res23:()=> Int = 我期待输出8出这个对象。有没有其他方法可以用来从func中获取价值? –
GoldenPlatinum