Scala 3 IntelliJ报错:预期';'却找到':',如何解决?
Scala 3工作表编译报错问题解决
问题详情
编写的Scala 3工作表代码如下:
case class Square(width: Double): val area = width * width val window = Square(2) window.area
运行时触发报错:';' expected but ':' found. case class Square(width: Double):,IntelliSense无语法提示错误,项目从Coursera的Scala课程下载,怀疑是编译器版本配置问题。
原因分析
代码使用了Scala 3特有的缩进语法(Indentation Syntax),无需用大括号包裹类体,而是通过缩进定义成员。但当前项目配置的是Scala 2编译器,Scala 2不支持该语法,因此抛出语法错误。
解决步骤
- 检查项目Scala SDK版本:打开
File > Project Structure > Modules,选中对应模块,确认Scala SDK为3.x系列(如3.3.1等),若不是则切换到Scala 3版本 - 确认工作表编译配置:右键工作表文件,选择运行配置,检查
Scala compiler version是否与项目SDK一致,手动指定为Scala 3版本 - 同步sbt依赖(若为sbt项目):打开sbt工具窗口,点击
Reload All,确保项目依赖同步到Scala 3版本 - 启用Scala 3语言级别:进入
Settings > Languages & Frameworks > Scala,将Language level设置为Scala 3
内容的提问来源于stack exchange,提问作者DorQuendi
相关产品推荐
相关产品推荐

