在大多数编程语言(如 Java 或 Python)中,我们在行尾使用“\”字符来指示下一行文档中的代码是应作为单行代码执行的代码的延续。但是,在 Scala 中,如果我们使用“\”字符,并且用户将两行或多行代码复制并粘贴到 Scala 交互式 shell 中并尝试执行它,它就会失败。
有人在文档中编写 scala 代码,其中运行的单个命令不适合一行文本,如何正确记录代码并同时支持复制/粘贴?
在大多数编程语言(如 Java 或 Python)中,我们在行尾使用“\”字符来指示下一行文档中的代码是应作为单行代码执行的代码的延续。但是,在 Scala 中,如果我们使用“\”字符,并且用户将两行或多行代码复制并粘贴到 Scala 交互式 shell 中并尝试执行它,它就会失败。
有人在文档中编写 scala 代码,其中运行的单个命令不适合一行文本,如何正确记录代码并同时支持复制/粘贴?
通常,您可以编写代码以避免换行推断。
对于必须粘贴到一个 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
对于不喜欢排长队的人来说,这是一个普遍的问题。
好吧,另一方面,简单的解决方案是使用 scala REPL 的粘贴模式。
只需键入:paste
即可进入粘贴模式并ctrl+D
结束它。