zer*_*ing 2 functional-programming scala scala-cats
我有以下类定义:
final case class Creator[F[_]](topic: String, discovery: ServiceDiscovery[F])
(implicit sync: Sync[F]) {
import JsonDeserializer._
private def setting: ConsumerSettings[F, String, JsonDecoder] =
discovery
.kafkaAddr
Run Code Online (Sandbox Code Playgroud)
我想强制F[_]
成为的实例Monad
,可以这样使用flatMap
:
private def setting: ConsumerSettings[F, String, JsonDecoder] =
discovery
.kafkaAddr
.flatMap.......
Run Code Online (Sandbox Code Playgroud)
如何存档?
导入语法
import cats.syntax.flatMap._
Run Code Online (Sandbox Code Playgroud)
既然cats.effect.Sync
扩展了cats.Monad
(和cats.FlatMap
),那么您已经implicit sync: Sync[F]
足够了。