【问题标题】:could not find implicit value for parameter functor: cats.Functor[Some]找不到参数函子的隐含值:cats.Functor[Some]
【发布时间】:2018-05-05 02:27:01
【问题描述】:

我正在尝试从 scala with cats 电子书中遵循一个简单的示例。这是我的代码

import cats.Semigroupal
import cats.instances.option._
import cats.syntax.apply._
import cats.implicits._
case class Name(fName: String, lName: String)
(Some("foo"), Some("bar")).mapN(Name.apply)

我得到了错误

cmd4.sc:1: could not find implicit value for parameter functor: cats.Functor[Some]
val res4 = (Some("foo"), Some("bar")).mapN(Name.apply)

我也尝试过导入

cats.functor._
cats.syntax.functor._

【问题讨论】:

    标签: scala scala-cats


    【解决方案1】:

    问题在于 Functor 的类型参数是不变的,因此您需要让 Scala 编译器将元组的类型视为 (Option[String], Option[String]) 而不是 (Some[String], Some[String])。您可以使用

    ("foo".some, "bar".some).mapN(Name.apply)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 2017-04-26
      • 2019-10-16
      • 2017-02-02
      • 1970-01-01
      相关资源
      最近更新 更多