1. switch-case
_ 으로 default 문의 역할을 할 수 있다.
break 문이 안보이는게 기본적인 특징이다.
스칼라에서는 match-case를 자바보다는 좀더 자주 사용하는듯하다.
2. 가드
가드를 사용할 수 도 있다.
그리고 변수를 활용하기도하고, asInstanceOf와 같은 형식으로도 많이 사용한다.
switch-case문을 조금더 동적으로, 제네릭하게 사용할 여지가 생긴다.
3. case class
패턴칭매에서 편하기 사용하기 위한 클래스이다.
- new를 사용하지 않고 인스턴스를 생성 가능
- toString, equals, hashCode, copy 메소드 생성
인스턴스생성
scala> ch match { | case '+' => 1 | case '-' => -1 | case _ => 0 | }스칼라에서 사용하는 switch-case 이다.
_ 으로 default 문의 역할을 할 수 있다.
break 문이 안보이는게 기본적인 특징이다.
스칼라에서는 match-case를 자바보다는 좀더 자주 사용하는듯하다.
2. 가드
가드를 사용할 수 도 있다.
scala> ch match { | case i if i == 1 => "one" | case i if i == 2 => "two" | case _ => "some other number" | }
scala> ch match { | case x : Int => x | case s : String => Integer.parseInt(s) | case _ : BigInt => Int.MaxValue | }
그리고 변수를 활용하기도하고, asInstanceOf와 같은 형식으로도 많이 사용한다.
switch-case문을 조금더 동적으로, 제네릭하게 사용할 여지가 생긴다.
3. case class
패턴칭매에서 편하기 사용하기 위한 클래스이다.
- new를 사용하지 않고 인스턴스를 생성 가능
- toString, equals, hashCode, copy 메소드 생성
scala> case class Calculator(brand: String, model: String) defined class Calculator
인스턴스생성
scala> val hp20b = Calculator("hp", "20b") hp20b: Calculator = Calculator(hp,20b)
케이스 매칭함수
scala> def calcType(calc: Calculator) = calc match { | case Calculator("hp", "20B") => "financial" | case Calculator("hp", "48G") => "scientific" | case Calculator("hp", "30B") => "business" | case Calculator(ourBrand, ourModel) => "Calculator: %s %s is of unknown type".format(ourBrand, ourModel) | case _ => "Calculator of unknown Type" | } calcType: (calc: Calculator)String scala> calcType(hp20b) res37: String = Calculator: hp 20b is of unknown type
댓글
댓글 쓰기