我想要以下功能:采用以下参数:
def filters: Map[String, String]
def queryString: Map[String, Seq[String]]
(来自 request.queryString)def key: String
..如果queryString
包含key
指定的参数,我想将相应的值添加到filters
。
一个工作函数是:
private def getUpdatedFiltersIfQueryStringContains(filters: Map[String, String], queryString: Map[String, Seq[String]], key: String): Map[String, String] = {
var updatedFilters: Map[String, String] = filters
if (queryString.contains(key)) {
updatedFilters = updatedFilters ++ Map(key -> queryString.get(key).get.head)
}
updatedFilters
}
这看起来很可怕,对吧?
由于if
语句在 Scala 中返回内容,因此我期待更多类似的内容:
private def getUpdatedFiltersIfQueryStringContains(filters: Map[String, String], queryString: Map[String, Seq[String]], key: String): Map[String, String] = {
if (queryString.contains(key)) {
filters ++ Map(key -> queryString.get(key).get.head)
}
}
但这不会编译,错误是:
类型不匹配; 找到:所需单位:地图[字符串,字符串]