Skip to content
Scala

임플리시트 (Scala 3의 Given/Using)

임플리시트로 타입 클래스 도출과 컨텍스트 전달.

#implicit#type-class#scala3

Code

scala
// Type class definition
trait Show[A] {
  def show(a: A): String
}

// Instance
implicit val showInt: Show[Int] = (a: Int) => a.toString

// Usage (implicit parameter)
def printIt[A](a: A)(implicit s: Show[A]): Unit =
  println(s.show(a))

printIt(42)  // "42" — compiler finds showInt

// Scala 3 syntax:
// given Show[Int] with { def show(a: Int) = a.toString }
// def printIt[A](a: A)(using s: Show[A]): Unit = ...