Scala 2.11.12 Worksheet实现Extension Method报not found错误如何解决
报错根本原因
你使用的Scala 2.11.12版本不支持原生extension语法,该语法是Scala 3版本新增的特性,因此编辑器会识别不到extension关键字抛出错误。
解决方法
你可以根据项目需求任选以下一种方案:
- 方案1:升级Scala版本到3.x
若项目允许调整Scala版本,直接将Scala版本升级到3.0及以上即可原生支持extension语法。只需修改项目构建配置中的Scala版本号,再在VS Code中切换对应版本的Scala SDK即可正常使用。 - 方案2:使用隐式类实现等价扩展功能(兼容Scala 2.11)
若必须保留Scala 2.11版本,可以用Scala 2原生支持的隐式类实现完全等价的扩展方法效果,示例如下:
假设你要实现的Scala 3扩展方法代码为:
改写为Scala 2.11兼容的写法:extension (n: Int) def double: Int = n * 2
两种写法的调用方式完全一致,implicit class IntExtension(n: Int) { def double: Int = n * 2 }2.double均可得到结果4,无需调整调用侧代码。
额外提示
如果后续长期进行Scala开发,可以更换VS Code中专门的Scala语言支持插件,语法识别、代码提示的适配性会更好。
内容的提问来源于stack exchange,提问作者Lorenzo D'Isidoro
相关产品推荐
相关产品推荐

