加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 我可以修改我之前在REPL中键入的代码吗?

发布时间:2020-12-16 19:24:43 所属栏目:安全 来源:网络整理
导读:也许我错过了一些东西,但我发现在REPL中试验代码对于我的手指来说比对我的大脑更好. 假设你已经定义了一个简单的类(请原谅这个糟糕的例子): scala class Farmer(){var name = "" | def apply (name: String) = {this. name = name} | override def toString
也许我错过了一些东西,但我发现在REPL中试验代码对于我的手指来说比对我的大脑更好.

假设你已经定义了一个简单的类(请原谅这个糟糕的例子):

scala> class Farmer(){var name = ""
     | def apply (name: String) = {this. name = name}
     | override def toString():String={name}
     | }
defined class Farmer

scala>

有没有办法获得整个定义并对其进行更改,而无需逐行重新输入或“向上箭头”.例如,假设我只想添加一个函数定义:

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然后点击返回,然后REPL将重新输入:

scala> class Farmer(){var name = ""
     | def apply (name: String) = {this.name = name}
     | override def toString

因此,基本上REP??L会为您重新定义代码,直到您指定的点.

如果有人对如何使用REPL有任何想法比我正在做的更有效,我很乐意听取他们的意见.

解决方法

如何复制和粘贴? Scala将检测到您正在从repl会话粘贴,并相应地执行操作(即忽略“scala>”和“|”).虽然如果你使用它更具可读性:粘贴模式来做东西.

否则,你可能会对另一个repl更开心.我发现ScalaConsole对于这种东西非常好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读