突然间,我的Scala代码期望“;”在每个语句的末尾



所以,在我上次调用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;

我该如何解决此问题?

我正在使用Oracle java 1.8.0_40运行Scala 2.11.5

所以。。。万一其他人将来也面临同样的问题。

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

所以。。。在scala中,以下两件事是等价的:

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

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

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

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

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

所以。。。万一你遇到这种问题。请检查你的行尾。

最新更新