全局,默认隐含在scalaz中(scalaz7)

全局,默认隐含在scalaz中(scalaz7),scala,scalaz,scalaz7,Scala,Scalaz,Scalaz7,当我使用Scalaz编写代码时,我经常遇到一些问题,即范围中没有隐含的内容。我认为在scalaz这个庞大的包中应该有一些默认值,但要么我不知道在哪里,要么根本没有 假设我们想在scalaz中显示anyany(我使用的是scalaz 7): 我认为同样的接触是平等的 编辑 正如回答中提到的那样,我尝试添加import scalaz.syntax.ShowSyntax,但这并不能解决我的问题。见: scala> import scalaz._ import scalaz._ scal

当我使用Scalaz编写代码时,我经常遇到一些问题,即范围中没有隐含的内容。我认为在scalaz这个庞大的包中应该有一些默认值,但要么我不知道在哪里,要么根本没有

假设我们想在scalaz中
显示
any
any
(我使用的是scalaz 7):

我认为同样的接触是平等的

编辑

正如回答中提到的那样,我尝试添加
import scalaz.syntax.ShowSyntax
,但这并不能解决我的问题。见:

scala>     import scalaz._
import scalaz._

scala>     import Scalaz._
import Scalaz._

scala>     import scalaz.syntax._
import scalaz.syntax._

scala>     import scalaz.syntax.ToShowOps
import scalaz.syntax.ToShowOps

scala>     import scalaz.syntax.ShowSyntax
import scalaz.syntax.ShowSyntax

scala>     {def a: Any = "sratatata"; a}.show
<console>:19: error: could not find implicit value for parameter F0: scalaz.Show[Any]
{def a: Any = "sratatata"; a}.show
scala>导入scalaz_
进口scalaz_
scala>导入Scalaz_
进口Scalaz_
scala>导入scalaz.syntax_
导入scalaz.syntax_
scala>导入scalaz.syntax.ToShowOps
导入scalaz.syntax.ToShowOps
scala>导入scalaz.syntax.ShowSyntax
导入scalaz.syntax.ShowSyntax
scala>{def a:Any=“sratatata”;a}.show
:19:错误:找不到参数F0:scalaz.Show[Any]的隐式值
{def a:Any=“sratatata”;a}.show

编译器仍然需要一些
隐式scalaz。Show[Any]
Show
只有在静态了解类型时才有用;如果您只知道您有一个
Any
,只需调用
a.toString.

如果您想
显示[String]
,请导入
scalaz.std.String.\uu
;对于
Show[List[String]
您需要同时导入
scalaz.std.List.\u
scalaz.std.String.\u

或者,您可以使用
scalaz.std.AllInstances导入标准库提供的所有类型类实例

这在@eed3si9n的优秀系列中一步一步地解释

这里还有一些很好的Scalaz指南:


仅当静态了解类型时,Show
才有用;如果您只知道您有一个
Any
,只需调用
a.toString.

如果您想
显示[String]
,请导入
scalaz.std.String.\uu
;对于
Show[List[String]
您需要同时导入
scalaz.std.List.\u
scalaz.std.String.\u

或者,您可以使用
scalaz.std.AllInstances导入标准库提供的所有类型类实例

这在@eed3si9n的优秀系列中一步一步地解释

这里还有一些很好的Scalaz指南:

scala> implicit def anyShow[A] = Show.showFromToString[A]
anyShow: [A]=> scalaz.Show[A]

scala> {def a: Any = "sratatata"; a}.show
res0: scalaz.Cord = sratatata
scala>     import scalaz._
import scalaz._

scala>     import Scalaz._
import Scalaz._

scala>     import scalaz.syntax._
import scalaz.syntax._

scala>     import scalaz.syntax.ToShowOps
import scalaz.syntax.ToShowOps

scala>     import scalaz.syntax.ShowSyntax
import scalaz.syntax.ShowSyntax

scala>     {def a: Any = "sratatata"; a}.show
<console>:19: error: could not find implicit value for parameter F0: scalaz.Show[Any]
{def a: Any = "sratatata"; a}.show