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
的第二个变量,这样我就可以让 env
和 condition
匹配 -- 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 来学习语言,而只是查找语法。
我有一个包含一个变量 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
的第二个变量,这样我就可以让 env
和 condition
匹配 -- 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 来学习语言,而只是查找语法。