我是scala和SBT的新手
我开始使用IDEA和SBT并且面临不明确的错误(表达式类型DslEntry必须符合SBT文件中的Def.SettingsDefinition)
这是一个非常简单的带有jetty插件的空测试项目(例子来自插件站点)
这是plugins.sbt源码:
logLevel := Level.Warn
addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "2.1.0")
Run Code Online (Sandbox Code Playgroud)
此错误仅出现在IDEA GUI中.如果我编译项目 - 一切都很好.从控制台 - 一切都很好.但是当某些东西不能正常工作时我不喜欢
我试图下载最新版本的SBT并在全局IDEA属性中设置它的路径 - 问题仍然存在.
我下载了最后一个版本的scala插件,sbt插件和另一个插件的intellij IDEA EAP - 问题仍然存在.
任何人都可以帮忙解决这个问题吗?
谢谢
我在一些源代码中遇到了以下定义:
case class Task(uuid: String = java.util.UUID.randomUUID().toString, n: Int)
Run Code Online (Sandbox Code Playgroud)
这里第一个参数声明为默认值,但我不明白如何使用这个默认值创建实例。如果我不能像那样传递第一个参数,Task(1)那么我肯定会得到编译错误。
但是,以下更改工作正常:
case class Task(n: Int, uuid: String = java.util.UUID.randomUUID().toString)
Run Code Online (Sandbox Code Playgroud)
但是,正如定义中所示,这里uuid是第一个参数。
我WSClient用来做休息请求.每个请求都返回一些Future.
结果我需要发出请求1并获取一些数据.然后,我需要做的请求2与请求结果数据1.然后我需要用来自请求2的结果的数据发出请求3.等等
在我的代码中它看起来像
def wsChain(data: Data): Future[NewData] = {
getOne(data).flatMap(data2 => {
getTwo(data2).flatMap(data3 => {
getThree(data3).flatMap(data4 => {
getFour(data4).map(result => foo(result))
})
})
})
}
Run Code Online (Sandbox Code Playgroud)
这是非常原始的样本,没有任何响应和请求的修改.但我认为即使很难阅读.我现在有关Await的Future,但它的反模式
可能我可以做得更漂亮吗?没有N个内部函数.