0

在 Ruby、Python 和可能的其他一些 REPL 中,您可以使用 引用最后一个值_

>> longCalculationIForgotToAssignToAVariable
42
>> foo = _
>> foo
42

如何在 Scala REPL 中做到这一点?我知道.REPL 的功能:

scala> foo.getBar()
res1: com.stackoverflow.Bar = [Bar]

scala> .getBaz() // calls method on bar

但这不符合我的要求。显然也没有_,或者我不会问:

scala> val foo = _
<console>:37: error: unbound placeholder parameter

我怎样才能做到这一点?Ammonite 的回答也很好,但很想在香草 REPL 中这样做。

4

1 回答 1

3

resN您可以使用REPL 提供的默认变量名称(以 开头),请参见下面的示例

scala> case class Bar(name: String)
defined class Bar

scala> Bar(name = "American Football")
res0: Bar = Bar(American Football)

您可以看到 Bar 实例提供了一个变量res0

scala> res0.name
res1: String = American Football

scala> val myBar = res0
myBar: Bar = Bar(American Football)

另请参阅 -如何访问 Scala REPL 中的最后一个结果?

如果您想列出变量,这可能会有所帮助

当 REPL 刚启动时,

scala> $intp.unqualifiedIds
res0: List[String] = List($intp)

在如上例中定义类/变量之后;

scala> $intp.unqualifiedIds
res3: List[String] = List($intp, Bar, Bar, myBar, res0, res1, res2)
于 2018-02-15T04:22:04.960 回答