암시(implicit)에 대한 기초 개념은 아래에서 정리해봤다.
Predef에 implicitly 라는 게 존재한다.
@inline def implicitly[T](implicit e: T) = e
implicit을 짧게 쓸 수 있는 관용구 정도로 생각하면 될 것 같다.
def plus(i: Int) (implicit j: Int) = println(i + j)
def plusWrapper(i: Int) = plus(i)
def plusImplicitly(i: Int) = plus(i)(implicitly[Int])
implicit val j = 20
plus(10)
plusWrapper(20)
plusImplicitly(30)
결과는 다음과 같다.
30
40
50
'scala' 카테고리의 다른 글
[zeppelin] 외부 lib 추가하기 (0) | 2016.11.05 |
---|---|
[scala] 암시 증거 (implicit evidence) (0) | 2016.11.03 |
[scala] 문자열 패턴 매치 (pattern match) 예시 (0) | 2016.11.02 |
[scala] 참조 투명성(referential transparency)과 부작용(side effect) (0) | 2016.10.31 |
[scala] 다른 라이브러리를 포함시킬 수 있는 REPL 환경 (0) | 2016.10.31 |