scala交互式shell文档支持复制粘贴

时间:2014-09-03 18:35:30

标签: scala interactive-shell

在大多数编程语言(如Java或Python)中,我们在一行的末尾使用“\”字符来表示下一行文档中的代码是应该作为单行执行的内容的延续。码。但是,在Scala中,如果我们使用“\”字符,并且用户将两行或多行代码复制并粘贴到Scala交互式shell中并尝试执行它,则会失败。

如何在文档中编写scala代码,其中单个命令运行不适合一行文本,正确记录代码并同时支持复制/粘贴?

2 个答案:

答案 0 :(得分:1)

另一方面,简单的解决方案是使用scala REPL的粘贴模式。

只需输入:paste即可进入粘贴模式,输入ctrl+D即可结束。

答案 1 :(得分:0)

通常,您可以编写代码以避免换行推断。

对于必须粘贴到一个REPL行的项目:

scala> trait A ; object A
defined trait A
defined object A

scala> trait A {
     | } ; object A
defined trait A
defined object A

对于必须在粘贴模式下正确编译的项目:

trait X {
  //def f = 1
  //  * 2
  def f =
    1 * 2
  def g = 1 *
    2
}

对于长字符串文字,请使用multiline和stripmargin:

  def s = """
    |This is a long
    | string.
    """.stripMargin.lines.mkString.trim

对于不喜欢长队的人来说,这是一个普遍的问题。