scala隐式返回值问题

时间:2014-12-25 00:12:39

标签: scala

使用Scala" 2.10.4",我有一个隐含的定义:

implicit class MyImplicits(val s: S) {
  def ==>(relation: W):Option[List[S]] = {
    getRelation(s,relation)
  }
}

当我想使用它时,以下工作正常:

import MyImplicits
val list1 = s ==>(w)
val value = list1.get

但是当我写这篇文章时,我得到错误:

import MyImplicits
val value = s ==>(w).get


Error:(56, 67) value get is not a member of MyImplicits
      val value = s ==>(w).get
                            ^

出现此错误的原因是什么,无论如何都要解决它?

2 个答案:

答案 0 :(得分:4)

那是因为它将get应用于(w)而不是整个表达式。

试试这个:

val value = (s ==>(w)).get

答案 1 :(得分:0)

Ashalynd已经解释过,这个时期的优先级高于==>运营商。你可以用括号绕过它,或者你可以使用get作为后缀运算符:

val value = s ==> w get