突然之间,我的 Scala 代码在每个语句的末尾都需要 `;`

All of a sudden my Scala code expects `;` at the end of each statement

所以,基本上一切都很好,直到我最后一次调用 sbt compile... 2 天前。

但是现在当我调用 sbt compile 时,它期望每个语句都以 ; 结束。

示例:

以下原因导致问题,

package me.example.sample

import java.util.UUID

错误,

'{' expected but 'import' found.
[error] import java.util.UUID
        ^

但这很好用,

package me.example.sample;

import java.util.UUID;

我该如何解决这个问题?

我是 运行 Scala 2.11.5Oracle java 1.8.0_40

所以...以防其他人将来遇到同样的问题。

Scala 基本上通过使用 line-endings 作为语句分隔符来避免 semicolons

所以...在 Scala 中,以下两件事是等价的:

println( "Hello" ); prinln( "World" )

println( "Hello" )
prinln( "World" )

现在,行尾在三种最流行的操作系统中有不同的表示方式。

Windows - CRLF - `\r\n`  
Linux   - LF   - `\n`  
Mac     - CR   - `\r`  

现在,根据您的操作环境,Scala 编译器会期望有相应的行结尾 statement separators 否则会非常非常混乱。

所以...以防您遇到此类问题。请检查您的行结尾。