Scala-分号不一致

Scala-分号不一致,scala,syntax,Scala,Syntax,我有一个非常简单的代码(scala-2.10): 我非常困惑何时使用分号。我还有其他类似的代码,在没有分号的情况下编译也没有问题 有人能解释一下这个特定的错误,并详细说明需要分号的所有情况吗?代码对我来说很好 唯一需要分号的时候是在同一行上写多个语句时。否则,换行符表示分离。因此,在当前代码中不需要任何分号,但如果要这样做: println(line); println(line) 而不仅仅是 println(line) println(line) 代码对我来说很好用 唯一需要分号的时候是在

我有一个非常简单的代码(scala-2.10):

我非常困惑何时使用分号。我还有其他类似的代码,在没有分号的情况下编译也没有问题


有人能解释一下这个特定的错误,并详细说明需要分号的所有情况吗?

代码对我来说很好

唯一需要分号的时候是在同一行上写多个语句时。否则,换行符表示分离。因此,在当前代码中不需要任何分号,但如果要这样做:

println(line); println(line)
而不仅仅是

println(line)
println(line)

代码对我来说很好用

唯一需要分号的时候是在同一行上写多个语句时。否则,换行符表示分离。因此,在当前代码中不需要任何分号,但如果要这样做:

println(line); println(line)
而不仅仅是

println(line)
println(line)

您可能需要将此设置为书签

我不明白为什么它会抱怨,因为您的对象行是一行的开始,不在括号内,并且前一行已经完成


有时编译器可能会感到困惑,您需要使用括号进行分组,但我看不到这一点。

您可能希望将其标记为书签

我不明白为什么它会抱怨,因为您的对象行是一行的开始,不在括号内,并且前一行已经完成


有时编译器可能会混淆,您需要使用括号分组,但我在这里看不到这一点。

出于某种原因,我的编辑器的行尾在升华文本3中被弄乱了。我在vim中打开了该文件,整个文件表示为一行(^M为新行字符)

我必须在Vim中运行以下命令来修复线路端点

:%s/\r/\r/g
这意味着根据dhg上面的回答,语句需要用分号分隔

因为我认为这些语句是在各自独立的行上,所以我没有放置任何分号,这就是我的错误的来源


感谢塞尼亚指出了这种可能性。

出于某种原因,我的编辑的行尾在崇高的文本3中被弄乱了。我在vim中打开了该文件,整个文件表示为一行(^M为新行字符)

我必须在Vim中运行以下命令来修复线路端点

:%s/\r/\r/g
这意味着根据dhg上面的回答,语句需要用分号分隔

因为我认为这些语句是在各自独立的行上,所以我没有放置任何分号,这就是我的错误的来源


多亏了senia指出了这种可能性。

编译器出于EOL和分号推理(实际上是
nl
推理)的目的碰巧采用了LF或FF

它忽略CR-LF序列中的CR

这项工作:

import scala.io.Source^Lobject Test
关于Scala中的行尾有一些相关的问题,这太糟糕了,因为它感觉像是黑暗时代。您可以与手机通话,但Scala无法识别我的源文件编码

有关vim,请参阅


Odersky是一个emacs的家伙,所以可能这就是为什么它不进行全谱线结束检测。

编译器碰巧采用LF或FF进行EOL和分号推断(这实际上是
nl
推断)

它忽略CR-LF序列中的CR

这项工作:

import scala.io.Source^Lobject Test
关于Scala中的行尾有一些相关的问题,这太糟糕了,因为它感觉像是黑暗时代。您可以与手机通话,但Scala无法识别我的源文件编码

有关vim,请参阅


Odersky是一个emacs的人,所以也许这就是为什么它不做全谱线结束检测。

你使用的是哪个版本的scala?编辑了我的问题,添加了对我有好处的版本书,这是您正在通过scala编译器推送的
.scala
文件吗?是的,该文件包含.scalaextension@AlexeiNunez:这与缩进无关。我想这是关于换行符的。您使用的是哪个版本的scala?编辑了我的问题以添加版本对我来说很好,这是一个通过scala编译器推送的
.scala
文件吗?是的,该文件有.scalaextension@AlexeiNunez:这与缩进无关。我猜是关于换行符的。这可能是因为您只有\n个字符。编译器可能需要\r\n。这很奇怪,因为我认为vim使用了\n作为它的换行符。我使用的是Sublime Text 3,但我一定是无意中更改了一些设置。我进入vim并运行了:%s/\r/\r/g来修复行尾,现在一切都很好,这可能是因为您只有\n个。编译器可能需要\r\n。这很奇怪,因为我认为vim使用了\n作为它的换行符。我使用的是Sublime Text 3,但我一定是无意中更改了一些设置。我进入vim并运行:%s/\r/\r/g来修复行尾,现在一切正常,greatI接受了这个答案,因为根据我提供的信息,这是最好的答案。另外,请查看我的答案以了解有关该问题的更多详细信息。我接受了此答案,因为这是我提供的信息中最好的答案。请查看我的答案,了解有关该问题的更多详细信息。