scala - 如何强制 F[_] 成为 Monad 的一个实例
问题描述
我有以下类定义:
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
我想强制F[_]
成为 的一个实例Monad
,我可以flatMap
像这样使用:
private def setting: ConsumerSettings[F, String, JsonDecoder] =
discovery
.kafkaAddr
.flatMap.......
我该如何存档?
解决方案
导入语法
import cats.syntax.flatMap._
由于cats.effect.Sync
extends cats.Monad
(and cats.FlatMap
) 和你有implicit sync: Sync[F]
这应该足够了。
推荐阅读
- netlogo - 在 Netlogo 中读取文件时忽略空行的最简单方法
- python - 使用 Python 3 提取包含在带有版权符号 © 的 html 标记中的文本
- android - 任务“:processDebugGoogleServices”执行失败。离子 3
- javascript - 为什么我不能从 firebase 数据库中获取路径中的所有对象?
- sql - SAS中带有PROC SQL的函数样式宏?
- javascript - Google 表格 - DOM 更改后 ImportXML 未更新
- matlab - 如何将 2D 矩阵保存为 (bmp) 图像,使其看起来类似于 image() 生成的图像?
- javascript - 如何使用带有递归获取的承诺?
- php - 如何使用 Laravel 5.6 升级 Carbon?
- eos - 什么是正确的cmd。EOS cmd 的行调用。“克莱奥斯定契约?”