You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala编写if语句报错:'(' expected but identifier found,是否为IntelliJ问题?

问题分析与解决

核心原因是Scala版本的语法差异,和IntelliJ环境无关。

你写的if x>0 then print("asdf")是Scala 3的语法,但如果你的项目使用的是Scala 2,就会触发这个报错——Scala 2强制要求if关键字后的条件表达式必须用括号包裹。

两种解决方法

  1. 适配Scala 2语法:给条件加上括号即可,Scala 2也支持then,或者更常用的写法是省略then:
val x=1
if (x>0) then print("asdf")
// 或更简洁的Scala 2写法
if (x>0) print("asdf")
  1. 切换到Scala 3环境:如果你想保留无括号的语法,只需在IntelliJ中将项目的Scala SDK版本切换到3.x系列(比如3.3.1),就能直接运行你原本的代码。

内容的提问来源于stack exchange,提问作者AridLeprechaun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 02:34:54