2014-09-03 89 views
0

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

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

回答

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 
} 

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

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

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

0

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

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