scala - 同时使用 Shapeless 和 Scalaz 6 - 导入冲突

标签 scala scalaz scala-macros shapeless

我试图定义这个同时使用 shapeless 和 Scalaz 的方法,但是它从 scalaz 中获取隐式的 map ,而不是某些东西(也许是“隐式宏”?我什至不知道那是什么)来自无形:

import scalaz._
import Scalaz._
import Category._
import shapeless.{Lens => _, _}
import poly._
import syntax.std.tuple._
import language.{higherKinds,implicitConversions}

/** Partitions an object which is isomorphic to a Seq, into two objects of the same type. */
def partitionIso[A,B](p: B => Boolean)(a: A)(implicit iso: A <=> Seq[B]): (A, A) =
  iso.to(a).partition(p).map(iso.from(_))

Eclipse 说:

Multiple markers at this line
- Implicit arguments found: => 
 ( scalaz.Functor.Tuple2Functor )
- type mismatch; found : (Seq[B], A) required: (A, A)
- Implicit conversions found: => Tuple2MA()

如何更改此代码以使其编译?

最佳答案

作为仍在学习 Scala 的人,我从未遇到过这个问题(尽管这是关于隐式的一件可怕的事情,没有人谈论过,因为它们看起来很酷),但我认为你有几个选项:

  • 通过在导入中将其别名为 _ 之类的内容来禁用您不想要的隐式(仅当隐式为< em>不在一个特质中)以类似 this 的方式.
  • 使用同名的非隐式方法覆盖隐式
  • 只是不要导入隐式转换。如果需要的话,编写您自己的代码来执行相同的操作。

关于scala - 同时使用 Shapeless 和 Scalaz 6 - 导入冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20721625/

相关文章:

scala - 如何在sbt中编译单个文件

mysql - 如何使用 Spark 将数据插入 RDB (MySQL)?

Scala 和 UnionType 绑定(bind)到泛型类型

scala - 这可以用 Scala 宏来完成吗?

scala - "dynamically"使用宏创建案例类

scala - 如何通过 Spark 数据帧使用 FASTLOAD 将数据加载到 Teradata 表中

scala - 为什么 traits 不能有带 Context Bounds 的参数

scala - 如何评估 Scala 宏中的表达式?

scala - io monad 的理解不打印任何内容

scala - 如何指定抽象类型必须实现 scalaz 中的某些类型类?