scala - 是否有任何理由使用 f 有界多态性而不是类型类?

标签 scala

是否有任何理由使用 f 有界多态性而不是类型类?

它们都解决了编写函数 f(a:A):A 的问题,其中 A 必须支持一组给定的操作(方法)(实现接口(interface)/成为类型类的实例)。

最佳答案

最终用户代码可能会更简单、更短并且看起来更好。

示例:

def first[A](s: Seq[A]): A = s.head

如果 Seq 是类型类,则用户必须编写以下内容:

def first[A, F[_]](s: F[A])(implicit S: Seq[F]): A = S.head(s)

关于scala - 是否有任何理由使用 f 有界多态性而不是类型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42734086/

相关文章:

scala - SBT 无法解决构建定义中的依赖关系

scala - 如何在 Scala 中打印元组的所有值?

scala - 迭代器上的Scala映射不会产生副作用

scala - 如何访问和更新 map map 的可变 map 中的值

scala - 如何处理对 Scala 集合的并发访问?

Scala Actor 和 worker

scala - 为什么 Scala 编译器不允许使用默认参数的重载方法?

java - sbt添加java项目

scala - 使用 LAPACK-BLAS DGEMM 的矩阵点积

java - Scala 范围、初始化