2014-10-10 52 views
1

申報清單是否可以申報清單上的封閉如何在一個封閉

,而不是

def extract[A](v:JValue)(implicit m: Manifest[A]) : A = v.extract[A] 

像?

def extract[A] = (v: JValue) => v.extract[A] 
+0

清單已被棄用。 – rightfold 2014-10-10 14:35:07

回答

1

這個聲明在其返回功能的方法返回你的函數爲特定類型的清單:

  1. def extract[A](implicit m: Manifest[A]) = (v: JValue) => v.extract[A] 
    

    比,這是不可能的,原因有兩個其他

    scala函數不像方法不支持參數多態 - 沒有像

    [A](v: JValue) => (m: Manifest[A]) => v.extract[A]

  2. scala函數不像方法不支持隱式參數。雖然這是公認的語法:

    { implicit manifest: Manifest[String] => v.extract[String] }

    隱含這裏確實有不同的含義:它使得函數體內可用的隱式解析,價值manifest但在調用函數時沒有效果(你會必須明確提供清單)