Scala:使用字符串插值将函数直接用于println(...)的方法

时间:2014-08-04 21:20:12

标签: scala scala-2.10 string-interpolation

使用Scala 2.10+字符串可以进行插值。所以我有这个问题。你怎么能这样做:

println(f"$foo(100,51)%1.0f" )

考虑到foo是一个函数:

def foo(x1:Int , x2:Int) : Double  = { ... }

根据我的理解,这被评估的方式使得foo被认为没有参数,因为我得到的信息是:

missing arguments for method foo in object bar;
follow this method with `_' if you want to treat it as a partially applied function

我尝试使用括号,但仍然会出现错误。

1 个答案:

答案 0 :(得分:11)

用大括号括起来foo的电话。

例如,让

def foo(x1: Int, x2: Int) : Double  = Math.PI * x1 * x2

例如

foo(100,51)
res: Double = 16022.122533307946

然后

scala> println(f"${foo(100,51)}%1.0f" )
16022