阅读量:0
在Scala中,可以通过使用隐式参数和隐式转换来实现类型类。
首先,定义一个类型类trait,例如:
trait Show[A] { def show(a: A): String }
然后,定义类型类的实例实现,例如:
implicit val intShow: Show[Int] = new Show[Int] { def show(a: Int): String = a.toString } implicit val stringShow: Show[String] = new Show[String] { def show(a: String): String = a }
接着,定义一个使用类型类的函数,例如:
def print[A](a: A)(implicit s: Show[A]): Unit = { println(s.show(a)) }
最后,调用该函数,并传入类型类的实例,例如:
print(123) // 输出:123 print("Hello") // 输出:Hello
通过以上步骤,就可以在Scala中使用类型类来实现类型抽象和多态。