Skip to content

Instantly share code, notes, and snippets.

@diegopacheco
Created January 7, 2012 22:42
Show Gist options
  • Select an option

  • Save diegopacheco/1576339 to your computer and use it in GitHub Desktop.

Select an option

Save diegopacheco/1576339 to your computer and use it in GitHub Desktop.
Scala Pattern Matcher Case Class
object MatcherCaseClasses extends App {
import scala.reflect.BeanProperty
trait DayOfWeek{
@BeanProperty var whatTodo:String
}
case class Monday(@BeanProperty var whatTodo:String) extends DayOfWeek
case class Saturday(@BeanProperty var whatTodo:String) extends DayOfWeek
case class Sunday(@BeanProperty var whatTodo:String) extends DayOfWeek
class JobChecker(){
def check(dow:DayOfWeek) = dow match{
case Monday("Soccer") => println("NO 1")
case Saturday(s) if s.contains("Party") => println("OK 1")
case Monday(_) => println("OK 2")
case _ => println("? = NO 2")
}
}
new JobChecker().check(new Monday("Soccer"))
new JobChecker().check(new Saturday("Hard Party"))
new JobChecker().check(new Monday("whatever"))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment