次の関数が必要です: 次のパラメータを取ります:
def filters: Map[String, String]
def queryString: Map[String, Seq[String]]
(request.queryString から)def key: String
..指定された in パラメータ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
}
これは恐ろしく見えますよね?
ステートメントは Scala で何かを返すのでif
、私はこれらの行に沿って何かを期待していました:
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)
}
}
しかし、これはコンパイルされません。エラーは次のとおりです。
型の不一致; found : 必要な単位: Map[String,String]