突然间,我的 Scala 代码需要在每个语句末尾添加“;”

Sar*_*ngh 6 scala sbt

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

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

例子:

以下导致问题,

package me.example.sample

import java.util.UUID
Run Code Online (Sandbox Code Playgroud)

错误,

'{' expected but 'import' found.
[error] import java.util.UUID
        ^
Run Code Online (Sandbox Code Playgroud)

但这效果很好,

package me.example.sample;

import java.util.UUID;
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

我正在Scala 2.11.5跑步Oracle java 1.8.0_40

Sar*_*ngh 5

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

基本上 Scala 避免semicolons使用line-endingsas 语句分隔符。

所以...在 scala 中,以下两件事是等效的:

println( "Hello" ); prinln( "World" )
Run Code Online (Sandbox Code Playgroud)

println( "Hello" )
prinln( "World" )
Run Code Online (Sandbox Code Playgroud)

现在,行结束符在三种最流行的操作系统中以不同的方式表示。

Windows - CRLF - `\r\n`  
Linux   - LF   - `\n`  
Mac     - CR   - `\r`  
Run Code Online (Sandbox Code Playgroud)

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

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