繁体   English   中英

更高种类的类型和无标签的最终版本

[英]Higher kinded type and Tagless final

我正在尝试编写一个可以采用任何无标记最终特征并返回F[String]的函数。

def apply[Api[F[_]]](implementation: Api[F[_]]): F[String] = ???

我不明白为什么上面没有编译。

以下作品。

trait Api[F[_]]

def apply[F[_]](implementation: Api[F[_]]): F[String] = ???

但是我如何摆脱这种特征?

尝试

def apply[Api[_[_]], F[_]](implementation: Api[F]): F[String] = ???

当您编写apply[Api[F[_]]](..)您没有声明ApiF ,而仅声明了Api F无关紧要,您可以编写apply[Api[F[_]]](..)apply[Api[G[_]]](..)或仅apply[Api[_[_]]](..) ,无论如何都不能在外面使用F

Api[F[_]]是类型参数声明中的正确语法,在类型位置的类型应用程序中,应编写Api[F]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM