"k"), ("from" -> "f"), (-6ren">
gpt4 book ai didi

scala - Scala 中 Map.get 的处理选项

转载 作者:行者123 更新时间:2023-12-04 16:00:32 25 4
gpt4 key购买 nike

我有一个 Scala Map,其中包含我在 HTTP 请求中获得的一堆参数。

val queryParams = Map( ("keyword" -> "k"), ("from" -> "f"), ("to" -> "t"), ("limit" -> "l") ) 

我有一个采用所有这些参数的方法。

def someMethod( keyword: String, from: String, to: String, limit: String) = { //do something with input params }

我想将 map 中的参数传递到我的方法 someMethod 中。

queryParams.get 返回一个 Option。所以我可以为每个输入参数调用类似 queryParams.get("keyword").getOrElse("") 的方法。

someMethod( queryParams.get("keyword").getOrElse(""), queryParams.get("from").getOrElse(""), queryParams.get("to").getOrElse(""), queryParams.get("limit").getOrElse(""))

有没有更好的方法?

最佳答案

如果所有参数都具有相同的默认值,您可以设置一个 default value到整个 map :

val queryParams = Map( ("keyword" -> "k"), ("from" -> "f"), ("to" -> "t"), ("limit" -> "l") ).withDefaultValue("")
someMethod( queryParams("keyword"), queryParams("from"), queryParams("to"), queryParams("limit"))

withDefaultValue 返回一个 Map,对于任何不存在的值返回默认值。现在你确定你总是得到一个值,你可以使用 queryParams("keyword")(没有 get 函数)。

关于scala - Scala 中 Map.get 的处理选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26569315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com