Joa*_*oan 0 scala tagless-final
我正在尝试编写一个可以采用任何无标记最终特征并返回的函数F[String]。
def apply[Api[F[_]]](implementation: Api[F[_]]): F[String] = ???
Run Code Online (Sandbox Code Playgroud)
我不明白为什么上面的内容没有编译。
以下作品。
trait Api[F[_]]
def apply[F[_]](implementation: Api[F[_]]): F[String] = ???
Run Code Online (Sandbox Code Playgroud)
但我怎样才能摆脱这个特质呢?
尝试
def apply[Api[_[_]], F[_]](implementation: Api[F]): F[String] = ???
Run Code Online (Sandbox Code Playgroud)
当你写的时候,apply[Api[F[_]]](..)你不声明Apiand F,你只声明Api。没关系F,你可以写apply[Api[F[_]]](..)orapply[Api[G[_]]](..)或者 只是apply[Api[_[_]]](..),反正你不能F在外面使用。
Api[F[_]]是类型参数声明中的正确语法,在类型应用程序中的类型位置中,您应该编写Api[F].
| 归档时间: |
|
| 查看次数: |
196 次 |
| 最近记录: |