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

迁移至Scala 3后遇纯表达式语句位置无操作警告的技术求助

解决Scala 3中"A pure expression does nothing in statement position"警告

问题根源

你的txt变量对应的if表达式缺少了最终的else分支:当texto既不为空/空字符串,长度又≤3000时,没有指定返回值。Scala 2会默认隐式返回Unit,但Scala 3对纯表达式的语句位置检查更严格,会触发这个警告——因为这个分支下的纯表达式(无副作用)没有被有效使用。

修复方案

补全else分支,返回原texto即可,这才符合逻辑的完整意图:

val txt =
  if (texto == null || texto.isEmpty) "_"
  else if (texto.length > 3000) texto.substring(0, 3000)
  else texto // 补全该分支,覆盖正常长度的文本场景

验证说明

补全后,if表达式在所有分支都有明确的字符串类型返回值,变量txt的类型会被正确推断为String,Scala 3编译器就不会再触发该警告。你之前尝试加括号或调整缩进无效,是因为核心问题是分支逻辑不完整,而非语法格式问题。

内容的提问来源于stack exchange,提问作者david.perez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 07:32:03