implicit class

· Scala/언어
implicit class는 마치 대상 타입을 확장하는 것과 같은 기능을 컴파일러 적으로 지원해주어 사용자가 더욱 효율적으로 코드를 짤 수 있게 도와줍니다.다만 이 기능은 대상 클래스를 감싸는 implicit class를 생성하는 문장을 암시적으로 끼워넣기 때문에 매 번 implicit class를 생성하는 부가 비용이 추가됩니다.이러한 부가 비용은 단순히 한 두 번 호출하는 정도로는 크게 상관이 없지만, 이를 자주 사용하는 상황에서는 어플리케이션에 조금씩이지만 누적되는 부담을 줍니다.이러한 부가 비용을 없애는 방법으로 implicit class를 value class로 바꾸는 방법이 존재합니다. value class설명하는 기준은 scala 2 기준입니다. scala 3를 사용중인 입장이라면 opaqu..
· Scala/언어
프로그래밍을 하다보면 수많은 함수를 만들게 되는데, 가끔식 객체나 값 자체에 만들어 둔 함수를 추가해서 항상 사용하고 싶을 때가 있습니다.예전에 만들어진 C나 C++과 같은 프로그래밍 언어에서는 지원하지 않지만 비교적 최근에 만들어진 Kotlin이나 C# 등의 최신 언어들은 이를 확장 함수라는 이름으로 제공해줍니다.Scala도 역시 유사하게 implicit class 라는 이름으로 이 기능을 제공해줍니다. implicit classScala는 2.10 이전에도 implicit 함수라는 이름으로 이러한 기능을 제공해주었습니다.이를 이용해 자체적인 라이브러리를 구현하고 외/내부 DSL을 지원해 줄 수 있어 편리하였지만 이를 한 군데 뭉쳐놓을 만한 곳이 존재하지 않아 상당히 귀찮기도 했습니다.이러한 변환을 더..
sleeptoy
'implicit class' 태그의 글 목록