我目前正在对理解结果进行模式匹配,如下所示
val validXsrf = for(
cookie <- request.cookies.get("XSRF-TOKEN");
header <- request.headers.get("X-XSRF-TOKEN");
if cookie.value == header ) yield true;
validXsrf match {
case Some(true) => callbackFunc();
case None => throw new XsrfException();
}
然而,这感觉有点过于冗长 - 有没有更简洁的表达方式?
理想情况下,我想做类似的事情
for(....) match { .... }
但是,如果不将整个 for-comprehension 括在括号中,这在 Scala 中似乎是不可能的。
是否有一种更简洁/更优雅的方式来表达这种逻辑?