如何在Scala REPL中输入多行命令

时间:2015-02-18 20:13:29

标签: scala read-eval-print-loop

我想输入类似下面的匹配指令,但格式化为多行。这可能在Scala REPL中吗?

myString match { case patt(a) => true case _ => false }

3 个答案:

答案 0 :(得分:4)

如果您只是按原样输入,REPL应该在您返回时检测左括号,这样它就不会尝试解析并执行代码,直到找到结束括号。

您还可以通过键入:pa:paste来使用粘贴模式。这将允许您以任何格式输入任意数量(两个空白行将自动退出)。然后在完成输入代码后,您可以按Ctrl + D进行评估。

答案 1 :(得分:2)

在Scala REPL中进入多行模式的一种方法是在开始大括号后输入#34; {"然后在每行之后按Enter键,直到最后一个结束大括号为止输入"}"。在退出多行模式后按Enter键

myScript match { <enter> //enter multi-line mode
  | case scriptStart(a) => true <enter>
  | case _ => false <enter>
  |} <enter> //exit multi-line mode

答案 2 :(得分:0)

级联转换时,就像用点结束每行一样简单。例如:

val wordcount = sc.
  textFile("MYFILE.txt").
  flatMap( x => x.split(" ") ).
  map( w => (w,1) ).
  reduceByKey( (a,b) => a+b )