我正在尝试合并 better monadic for进入一个项目,因为它是可爱的元组脱糖,但目前似乎不起作用。我有:
- 在我的
plugins.sbt
中添加了该插件:addCompilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1")
. - 我已将我的 scala 版本从
2.13.2
降级至2.13.1
- 我已按如下方式更新了我的代码,以利用如下的脱糖功能
我有一个具有以下签名的辅助方法:
def helper(shifts: List[Shift], taskMap: Map[String, Double]): F[(Int, Int)]
它的调用方式如下:
(offProd, prod) <- helper(shifts, taskMap)
没有脱糖,它编译得很好。
我正在使用 sbt 版本 1.5.8
我已经在 Metals 中重新编译并重新加载了该项目,以确保包含编译器插件。此时我唯一能想到的是插件可能没有在我的 build.sbt 中自动拾取,因为我还没有更新它以使用 plugins.sbt
因为我假设 sbt 会为你做到这一点。
最佳答案
事实证明我没有通过 plugins.sbt
将插件导入到我的项目中。如luis (即G.O.A.T.)在评论中指出,better-monadic-for
是一个编译器插件而不是 sbt 插件,必须添加到您的 build.sbt
.
我将插件添加到我的 build.sbt
中的库依赖项中相反,工作:
compilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1")
(例如)
libraryDependencies ++= Seq(
"io.circe" %% "circe-core" % "0.14.1",
//... more typelevel libraries here
compilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1"),
)
关于scala - 更好的单子(monad)来解决元组脱糖失败的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75297972/