是否可以在闭包
上声明清单而不是
def extract[A](v:JValue)(implicit m: Manifest[A]) : A = v.extract[A]
之类的东西?
def extract[A] = (v: JValue) => v.extract[A]
答案 0 :(得分:1)
这声明了方法的清单,该方法返回函数,返回特定类型的函数:
def extract[A](implicit m: Manifest[A]) = (v: JValue) => v.extract[A]
除此之外不可能有两个原因:
scala函数不同于不支持参数多态的方法 - 没有像
那样的东西 [A](v: JValue) => (m: Manifest[A]) => v.extract[A]
scala函数与方法不同,不支持隐式参数。虽然这是公认的语法:
{ implicit manifest: Manifest[String] => v.extract[String] }
隐含在这里确实有不同的含义:它使值manifest
可用于函数体内的隐式解析,但在调用函数时无效(您必须明确提供清单)< / p>