IntelliJ IDEA中Scala Worksheet报'(' expected but identifier found错误求助
Scala Worksheet
'(' expected but identifier found报错解决方案 根本原因
你代码中使用的if 条件 then 结果无括号写法是Scala 3专属语法,报错是因为IntelliJ IDEA当前给Scala Worksheet匹配的编译器版本是Scala 2.x,Scala 2不支持该语法,会强制要求if后紧跟括号包裹判断条件,所以触发了括号缺失的编译报错。
修复步骤
- 确认项目全局Scala版本:进入
File -> Project Structure -> Libraries,检查绑定的Scala SDK版本是否为3.x系列,若为2.x请更换为你之前正常使用的Scala 3版本。 - 单独配置Worksheet编译器版本:打开IDEA设置页
Settings -> Languages & Frameworks -> Scala -> Worksheet,将编译版本选择为项目对应的Scala 3 SDK,避免默认调用全局的Scala 2编译器。 - 强制指定Worksheet编译版本:如果上述配置后仍报错,在Worksheet代码的第一行添加版本声明
//> using scala "3.x"(将3.x替换为你实际使用的具体版本号,比如3.3.3)即可强制指定编译版本。 - Scala 2兼容写法:如果需要临时在Scala 2环境下运行代码,调整if写法即可正常编译:
def silnia(n:Int):Int= if (n==0) 1 else if (n>0) n*silnia(n-1) else throw new Exception(s"negative number: $n")
内容的提问来源于stack exchange,提问作者NN ZZ
相关产品推荐
相关产品推荐

