我正在尝试使用以下方式迭代来阅读scalatra webapp中的输入
for (
input1<- params.getOrElse("input1", "");
input2 <- params.getOrElse("input2", "");
search <- params.getOrElse("search", false)
) {
//Perform action
}
抛出错误值foreach不是Object的成员。
如果用户没有提供任何输入,它应该默认为空字符串并调用操作而不是断开循环。因此我使用getOrElse。但我没有成功。
任何帮助?
答案 0 :(得分:1)
您可以使用for-comprehension与Option
一起使用,但不能将其用于至少没有定义foreach
,map
或{{1}的对象}}。在您的情况下,如果flatMap
正在返回选项,那么......
params
如果for(
input1 <- params get "input1"
input2 <- params get "input2"
){
//do stuff
}
和input
都不是input2
,则无法运行。
如果你不想让控制逻辑短路,并且你希望None
返回有明智的默认值,那么更好的办法就是
Option
您明确提供默认值并将其传递给函数调用。