【发布时间】:2015-04-25 11:47:38
【问题描述】:
我正在尝试使用 Scala 的 PlayFramework,但我的 build.sbt 文件遇到了问题。具体来说:
Pattern matching in val statements is not supported
这是显而易见的:
val env = sys.props.getOrElse("ENV", default = "local")
val (someVal, otherVal) = env match {
case "local" => ("x","a")
case _ => //etc
}
有没有办法在 build.sbt 文件中使用 match 语句?该错误表明它在 val 语句中不受支持。它实际支持在哪里?
编辑:
我也尝试向 build.scala 对象添加方法,但即使我使用普通 if 语句,我仍然得到相同的“不支持 val 语句中的模式匹配”
构建.scala:
import sbt._
import Keys._
object ExampleBuild extends Build {
def getEnvData(env: String) = {
if(env == "local") {
("c","q")
} else if (env == "other") {
("b","v")
} else {
("x","a")
}
}
}
并更新了 build.sbt:
val env = sys.props.getOrElse("ENV", default = "local")
val (someVar, otherVar) = ExampleBuild.getEnvData(env)
但无济于事。
【问题讨论】:
标签: scala build pattern-matching sbt