-
Notifications
You must be signed in to change notification settings - Fork 36
15장 case classes and pattern matching
kingori edited this page Nov 19, 2011
·
12 revisions
패턴매칭할 클래스에 case키워드를 사용한다.
간단한 예제로 알아보자.
scala> abstract class Expr
defined class Expr
scala> case class Var(name: String) extends Expr
defined class Var
scala> case class Number(num: Double) extends Expr
defined class Number
scala> case class UnOp(operator: String, arg: Expr) extends Expr
defined class UnOp
scala> case class BinOp(operator: String,
| left: Expr, right: Expr) extends Expr
defined class BinOp
case classes modifier가 주는 문법적 편리함
- 클래스명으로 팩토리메소드 추가할 수 있다.
- case 클래스의 파라미터 리스트에 있는 인자들은 모두 val
- toString, hashCode, equals 메소드의 "natural"구현 사용할 수 있다.
- copy 메소드를 사용할 수 있다.
- 패턴매칭을 지원한다.
extractor는 chapter.26에서 만날 수 있습니다.