偶尔,我会遇到一个想要引用另一个论点的论点。例如,
def monitor(time: Double, f: Double => Double, resolution: Double = time / 10) = {...}
请注意,分辨率是指时间。有可能的语言吗? Scala有可能吗?
答案 0 :(得分:3)
在Scala中有点可能,但你必须讨论参数:
def monitor(time: Double, f: Double => Double)(resolution: Double = time / 10)
你不能以提出问题的方式来做。
答案 1 :(得分:2)
我不知道这种结构可行的任何语言,但是一个简单的解决方法并不难找到。
在scala中,这样的事情是可能的:
scala> def f(i : Int, j : Option[Int] = None) : Int = {
| val k = j.getOrElse(i * 2)
| i + k
| }
f: (i: Int, j: Option[Int])Int
scala> f(1)
res0: Int = 3
scala> f(1, Some(2))
res1: Int = 3
在scala中,你也可以这样做:
scala> def g(i : Int)(j : Int = i * 2) = i + j
g: (i: Int)(j: Int)Int
scala> g(2)(5)
res6: Int = 7
scala> g(2)()
res7: Int = 6