Package Object
- 부모 패키지에 정의
- 자식 패키지와 같은 이름으로
- 유틸리티 함수나 상수 정의
- 프로젝트에 자주쓰이는 implicit 같은거 모아둘 수 있음.
package com.cheese.practice
// com/cheese/practice/people/package.scala
package object people {
val defaultName = "cheese"
implicit def int2string(from:Int) = from.toString
}
package people {
class People {
var name = defaultName // package object 에서 온 상수.
}
}
- 내부적으로 정적 메소드/필드를 가진 package.class로 컴파일 됨
ref : http://www.scala-lang.org/docu/files/packageobjects/packageobjects.html