Scala 为什么在这个场景中不能使用隐式?
此代码编译:Scala 为什么在这个场景中不能使用隐式?,scala,Scala,此代码编译: trait Plus[A] { def plus(a1 : A , a2: A): A } def plus[A: Plus](a1: A, a2: A): A = implicitly[Plus[A]].plus(a1, a2) //> plus: [A](a1: A, a2: A)(implicit evidence$1: day0.sumfunction.Plus[A])A 但如果我尝试使用: def plus[A: Plus](a1: A, a2: A): A
trait Plus[A] {
def plus(a1 : A , a2: A): A
}
def plus[A: Plus](a1: A, a2: A): A = implicitly[Plus[A]].plus(a1, a2)
//> plus: [A](a1: A, a2: A)(implicit evidence$1: day0.sumfunction.Plus[A])A
但如果我尝试使用:
def plus[A: Plus](a1: A, a2: A): A = implicit[Plus[A]].plus(a1, a2)
然后我收到编译错误:此行有多个标记-缺少参数类型-预期标识符,但找到“[”
为什么我不能在这种情况下使用隐式
此代码取自
隐式是一个不能这样使用的关键字。您正在查找隐式,它位于Predef
:
def plus[A: Plus](a1: A, a2: A): A = implicitly[Plus[A]].plus(a1, a2)
或者:
def plus[A](a1: A, a2: A)(implicit x: Plus[A]): A = x.plus(a1, a2)
implicit
是一个不能这样使用的关键字。您正在查找implicit
,它位于Predef
:
def plus[A: Plus](a1: A, a2: A): A = implicitly[Plus[A]].plus(a1, a2)
或者:
def plus[A](a1: A, a2: A)(implicit x: Plus[A]): A = x.plus(a1, a2)
implicit
是一个不能这样使用的关键字。您正在查找implicit
,它位于Predef
:
def plus[A: Plus](a1: A, a2: A): A = implicitly[Plus[A]].plus(a1, a2)
或者:
def plus[A](a1: A, a2: A)(implicit x: Plus[A]): A = x.plus(a1, a2)
implicit
是一个不能这样使用的关键字。您正在查找implicit
,它位于Predef
:
def plus[A: Plus](a1: A, a2: A): A = implicitly[Plus[A]].plus(a1, a2)
或者:
def plus[A](a1: A, a2: A)(implicit x: Plus[A]): A = x.plus(a1, a2)
我不认为implicit
关键字采用类型参数,隐式
方法采用:@inline def隐式[t]
。是什么鼓励你尝试这样的事情?@som snytt我确实分享了代码的起源地,一个scalaz教程:特别是,我很好奇你是否读到了这样一个让人困惑的东西。重复到只是不知道是或@som snytt谢谢你的有用链接我不认为implicit
关键字是一种类型参数,隐式
方法执行:@inline def隐式[T]
。是什么鼓励你尝试这样的事情?@som snytt我确实分享了代码的起源地,一个scalaz教程:特别是,我很好奇你是否读到了这样一个让人困惑的东西。重复到只是不知道是或@som snytt谢谢你的有用链接我不认为implicit
关键字是一种类型参数,隐式
方法执行:@inline def隐式[T]
。是什么鼓励你尝试这样的事情?@som snytt我确实分享了代码的起源地,一个scalaz教程:特别是,我很好奇你是否读到了这样一个让人困惑的东西。重复到只是不知道是或@som snytt谢谢你的有用链接我不认为implicit
关键字是一种类型参数,隐式
方法执行:@inline def隐式[T]
。是什么鼓励你尝试这样的事情?@som snytt我确实分享了代码的起源地,一个scalaz教程:具体地说,我很好奇你是否阅读了一些以这种特殊方式令人困惑的内容。复制到《不知道是什么》或@som snytt,谢谢你的帮助链接