在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
我该怎么做?亚扪人也回答得很好,但是很想在香草REPL中做到这一点。
答案 0 :(得分:3)
您可以使用REPL提供的默认变量名称(以resN
开头),请参阅下面的示例
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)
另见 - How can I access the last result in 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)