Scala 我可以修改我之前在REPL中键入的代码吗?
也许我遗漏了什么,但我发现在REPL中尝试代码对我的手指比对我的大脑更好 假设您定义了一个简单的类(请原谅这个糟糕的示例): 有没有一种方法可以获取整个定义并对其进行更改,而无需逐行重新键入或“向上箭头”。例如,假设我只想添加一个函数定义:Scala 我可以修改我之前在REPL中键入的代码吗?,scala,Scala,也许我遗漏了什么,但我发现在REPL中尝试代码对我的手指比对我的大脑更好 假设您定义了一个简单的类(请原谅这个糟糕的示例): 有没有一种方法可以获取整个定义并对其进行更改,而无需逐行重新键入或“向上箭头”。例如,假设我只想添加一个函数定义: scala> class Farmer(){var name = "" | def apply (name: String) = {this.name = name} | override def toString():String
scala> class Farmer(){var name = ""
| def apply (name: String) = {this.name = name}
| override def toString():String={name}
| def +(surname: String) = {name = name + " " + surname}
| }
defined class Farmer
scala>
换句话说,有没有一种方法可以告诉REPL重放来自上一个输入的完整多行条目(最多一行),而不是一次只重放一行(按向上箭头时发生的情况)
在“快乐之地”中,按ALT
,然后键入toString
,然后点击return
,然后REPL将重新键入:
scala> class Farmer(){var name = ""
| def apply (name: String) = {this.name = name}
| override def toString
因此,REPL基本上会为您重新键入代码,直到您指定的点
如果有人对如何使REPL的使用比我现在所做的更有效率有任何想法,我很乐意听取他们的意见。复制和粘贴如何?Scala将检测到您正在从repl会话粘贴,并相应地执行操作(即忽略“Scala>”和“|”)。不过,如果使用:粘贴模式进行操作,则可读性更高
否则,你可能会更喜欢另一个回复。我发现这对这类东西非常有用。将代码保存在文本编辑器中,修改它,然后粘贴回?在桌面GUI应用程序中提供多行编辑器以调用REPL。您可以通过按Shift Return键重新计算代码块。我使用它正是因为这个功能。@0\u我想试试,但我无法在Windows上克隆存储库,因为它有一个名为
aux
的目录,它是保留的。是否可以将此名称更改为其他名称@0_uuu;我现在正在使用Scalaconole,但ScalaInterpreterPane看起来也很棒。谢谢-我稍后会试一试aux
是windows中的保留目录名吗??哇,我不知道。我现在已经上传了一些二进制文件,应该可以了。在任何情况下,我都会在下一个版本中更改该包的名称。我不知道REPL会忽略来自REPL会话的“噪音”。太好了!
scala> class Farmer(){var name = ""
| def apply (name: String) = {this.name = name}
| override def toString