匹配,逻辑案例?

时间:2011-12-06 21:46:21

标签: scala pattern-matching

def searchEquipmentCategory(category: String) = Action {

    val equipment = Equipment.searchByCategory(category)
    equipment.size match {
        case 0 => NotFound(views.html.helpers.notfound("Equipment not found for category :" + category))
        case (_ > 0) => Ok(views.html.equipment.index(equipment, capitalize(category)))
    }

}

是否可以将逻辑放入匹配大小写语句中?

我到处搜索,找不到任何文档。如果案例为0,我只想知道如果数字超过0则做一件事。

使用_默认设置在这种情况下可以正常工作,但如果我想做3件事怎么办?

  • 如果数字== 0
  • 如果数字在1到10之间
  • 如果数字在11到20之间

也许我试图用案例做太多。

感谢您的帮助。

2 个答案:

答案 0 :(得分:11)

case i if i > 0 => Ok( ... )

所以要区分01 to 1011 to 20

case 0 =>
case i if i >=  1 && i <= 10 =>
case i if i >= 11 && i <= 20 =>

但是我想if - else if - else块更具可读性。

答案 1 :(得分:6)

这叫做警卫:

case x if (x > 0) => OK ...