목록Language/Scala (2)
코딩하는 오징어
트레이트 (Trait) Scala의 Trait는 Java의 Interpace와 비슷하면서도 다르게 동작한다. 먼저 기본적이 내용, Syntax 부터 정리해보자. 트레이트 정의 및 사용 trait Manager { def lookup(): Unit } trait라는 키워드를 이용하여 정의하며 별도의 클래스나 트레이트를 상속하고 있지 않으므로 Manager 트레이트는 AnyRef가 부모 클래스이다. trait는 주 생성자를 가질 수 없다. 다음과 같은 코드는 컴파일 에러를 일으킨다. trait Manager(val name: String) { // 컴파일 에러 ... } trait는 메서드를 선언 뿐만 아니라 구현할 수도 있다. 또한, 트레이트를 상속하여 구현하려면 다음과 같이 코드를 작성하면 된다. tra..
일반적으로 for 표현식은 다음과 같은 형태이다. for ( seq ) yield expr for expression 에서 yield가 생성하는 컬렉션 타입은 가장 바깥 루프의 제너레이터에 사용된 컬렉션타입을 따른다. 여기서 seq는 제너레이터(generator), 정의(definition), 필터(filter)를 나열한 것이다. 연속된 구성요소 사이에는 세미콜론(;)을 넣는다. /* example code */ case class Person(val name: String, val age: Int) object Test { def main(args: Array[String]): Unit = { val persons = List(Person("hubert", 26), Person("david", 29),..