如何在scalaz中导入===

时间:2014-12-05 03:41:43

标签: scalaz

我需要使用scalaz中的EqualsOps(===),但是导入scalaz.Scalaz._会给我一个与anorm的get方法的命名冲突。

以下是编译错误:

reference to get is ambiguous;
[error] it is imported twice in the same scope by
[error] import scalaz.Scalaz._
[error] and import anorm.SqlParser._

如何在不引起与anorm冲突的情况下将===带入范围?

1 个答案:

答案 0 :(得分:5)

删除import scalaz.Scalaz._

假设您正在比较基元,

import scalaz._
import std.anyVal._
import syntax.equal._

如果是其他内容,请说出字符串,请将std.anyVal._替换为std.string._

基本上,第一行为您提供了各种scalaz类型(如果您不想这样,请将std替换为scalaz.std,将语法替换为scalaz.syntax)。

第2行为您提供了基元的隐式转换。这使您可以将基元视为Equal,或者实际上将其视为任何其他标量类型,(Monoid等) 第3行为您提供了EqualOps,您可以将===语法与Equal的内容结合使用。

希望有所帮助