匹配,逻辑案例?

Dre*_*w H 2 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)))
    }

}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

谢谢您的帮助.

0__*_*0__ 11

case i if i > 0 => Ok( ... )
Run Code Online (Sandbox Code Playgroud)

所以要区分0,1 to 1011 to 20:

case 0 =>
case i if i >=  1 && i <= 10 =>
case i if i >= 11 && i <= 20 =>
Run Code Online (Sandbox Code Playgroud)

但后来我猜if- else if- else块更具可读性.


agi*_*eel 6

这叫做警卫:

case x if (x > 0) => OK ...
Run Code Online (Sandbox Code Playgroud)