0
我想不通爲什麼這不起作用:應用功能與隱參數需要明確的說法
case class Expression extends Node[Doube] {
def apply(implicit symbolTable: Map[String,Double]) = value
}
注意值在節點定義,也有一個隱含的符號表的說法。
當我嘗試調用它像這樣:
implicit val symbolTable = Map("a"->1, "b"->2)
//and x is an Expression, then:
x() // does not compile (can't find implicit) but
x(symbolTable) // works fine
和奇怪:
x.value // works fine too
如果我寫申請,像這樣:
def apply()(implicit symbolTable: Map[String,Double])
它的工作原理,但我不不明白爲什麼我需要這樣做......
任何指針?
是的,value是一個帶有一個隱式參數列表的方法,但是它也適用,爲什麼它們的行爲不一樣? – fsauer 2014-09-04 14:56:09
你沒有在任何地方寫'x.apply'。 – 2014-09-04 15:04:29
是不是x()調用? – fsauer 2014-09-05 19:34:39