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,谢谢你的帮助链接