- extractor
기존 타입에 대한 새로운 패턴을 정의 가능
- apply
인수를 받아 객체를 생성하는 생성자와 비슷
- unapply
객체를 받아서 인수를 되돌려줌
패턴 일치 및 부분 함수에서 자주 사용됨
리턴타입
- Boolean
- Option[T] : T유형의 단일 하위 값 반환
- Option[(T1,T2 ..., Tn)] : 여러 하위 값을 반환
예제
Menu Object를 정의 apply메소드에서는 이름과, 가격을 파라미터로 받고 리턴은 문자열로 해줌
object Menu {
def apply(name: String,price: String): String = s"$name--$price"
def unapply(price: String): Option[String] = {
val stringArray: Array[String] = price.split("--")
if (stringArray.tail.nonEmpty) Some(stringArray(1)) else None
}
}
결과
val menu = Menu("짜장면", "6000")
println(menu)
val Menu(price) = menu
println(price)
'Language > Scala' 카테고리의 다른 글
[Scala] 스칼라 설치 및 IDE 셋팅 (0) | 2021.10.17 |
---|
댓글