我正在开发一些应用程序,可以处理硬盘上的文件。我有以下“实体”:
final case class File(path: String)
final case class FileChecksum(f: File, checksum: Long)我还有下面的类型类:
trait Checksum[T]{
def checksum(t: T): Long
}所有这些都是由以下特征操作的:
trait Model{
def fromFile(file: File)(implicit checksum: Checksum[File]): FileChecksum
}而且它看起来很好。但我决定对其进行重构,并应用无标记final。所以模型现在看起来是这样的:
trait Model[F[_]]{
def fromFile(file: File)(implicit checksum: Checksum[F, File]): F[FileChecksum]
}
trait Checksum[F[_], T]{
def checksum(t: T): F[Long]
}让我困惑的问题是类型类trait Checksum[F[_], T]。它现在依赖于上下文F。这真的是一个类型类吗?还是我看错方向了?
https://stackoverflow.com/questions/51342064
复制相似问题