2011-12-06 8 views
2
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以上の場合は1つだけ行います。

_を使用すると、その状況で正常に動作しますが、3つのことをしたい場合はどうなりますか?

  • 数== 0
  • かの数はたぶん私はケースにあまりを行うに

11〜20をしようとしている場合の数は1と10
  • の間にある場合。

    ありがとうございました。

  • 答えて

    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

    、あなたが読み、それが少し簡単になり 'if'、後に' '(..)を省略することができます。 –

    +0

    @Mirkoええと、それを知らなかった!ニース! –

    +0

    編集済み(カッコが削除されています) –

    6

    これは、ガードと呼ばれる:読みやすさに関する

    case x if (x > 0) => OK ... 
    
    関連する問題