【问题标题】:Two conditions for a Scala match statementScala match 语句的两个条件
【发布时间】:2020-11-20 18:59:22
【问题描述】:

我有一个带有一个变量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)
}

上面肯定会引发错误。有什么办法可以做到吗?

【问题讨论】:

    标签: scala syntax match


    【解决方案1】:

    使用元组

    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

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

    【讨论】:

      猜你喜欢
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      相关资源
      最近更新 更多