Scala 匹配语句的两个条件

Two conditions for a Scala match statement

我有一个包含一个变量 env 的匹配条件,如下所示:

val query_get_data = env match {
  case "prod" =>
    Queries.queryGetData1(store_set_id, client_id, date_from, date_to)
  case "dev" =>
    Queries.queryGetData2(store_set_id, client_id, date_from, date_to)
}

我想添加一个名为 condition 的第二个变量,这样我就可以让 envcondition 匹配 -- case "prod" 和 "condition1" --> 语句。

val query_get_data = env match condition match {
  case "prod" =>
    Queries.queryGetData1(arg1, arg2)
  case "prod" and "condition1" 
    Queries.queryCondition(arg1, arg2)
  case "dev" =>
    Queries.queryGetData2(arg1, arg2)
}

以上肯定会抛出错误。我有办法做到这一点吗?

使用元组

val query_get_data = (env, condition) match {
  case ("prod", "condition1") => 
    Queries.queryCondition(arg1, arg2)
  case ("prod", _) =>
    Queries.queryGetDataOnline(arg1, arg2)
  case ("dev", _) =>
    Queries.queryGetDataDev(arg1, arg2)
}

顺便说一句,请遵循style guide

此外,这应该很简单,所以我假设您没有遵循适当的 material 来学习语言,而只是查找语法。