scala repl设置和日志

时间:2017-04-23 06:38:20

标签: scala scala-repl

我的scala repl没有在屏幕上显示日志,因为有些书籍和论坛似乎在暗示。我在scala 2.12.1上。当我尝试下面的语法时,我的scala repl

scala> def sum(a:Int, b:Int) = a+ b
sum: (a: Int, b: Int)Int

应显示如下

scala> val fun2 = sum _
fun2: (Int, Int) => Int = <function2>

但它显示如下:

scala> val fun2 = sum _
fun2: (Int, Int) => Int = $$Lambda$1623/2005055216@13bdf19

它没有显示<function2>等特征。如何解决此问题?

2 个答案:

答案 0 :(得分:0)

我假设这是由于Scala 2.12现在SAM转换Scala功能SAM接口的方式。如果要查看表达式的类型,请在声明前添加:t

scala> :t val fun2 = sum _
(Int, Int) => Int

答案 1 :(得分:0)

除了标准库中的FunctionN类型之外,Scala 2.12类型检查器还接受函数文字作为任何单一抽象方法(SAM)类型的有效表达式。这改善了在Scala中使用为Java 8编写的库的体验。

scala> val runRunnable: Runnable = () => println("Run!")

runRunnable:Runnable = $$ Lambda $ 1073/754978432 @ 7cf283e1

阶&GT; runRunnable.run() 运行!