如何編寫從Array[_]
到List[_]
類型的隱式轉換?我嘗試了以下,但它似乎並沒有工作。將數組隱式轉換爲列表
scala> implicit def arrayToList[A : ClassManifest](a: Array[A]): List[A] = a.toList
<console>:5: error: type mismatch;
found : Array[A]
required: ?{val toList: ?}
Note that implicit conversions are not applicable because they are ambiguous:
both method arrayToList in object $iw of type [A](a: Array[A])(implicit evidence$1: ClassManifest[A])List[A]
and method genericArrayOps in object Predef of type [T](xs: Array[T])scala.collection.mutable.ArrayOps[T]
are possible conversion functions from Array[A] to ?{val toList: ?}
implicit def arrayToList[A : ClassManifest](a: Array[A]): List[A] = a.toList
^
命名約定`XxxOps`總是暗示你看到'Xxx`類型的延伸方法。 – 2011-02-13 11:48:00
這對我很有用。我有一個可能爲null的數組(從一個JDBC調用返回,所以`Option`不是一個選項),並使用你的解釋/解決方法,我可以創建一個隱式來處理它:`implicit def nullableArrayToList [T]( array:Array [T])Option(array).fold(List.empty [T]){_.toList}` – Raman 2014-05-13 17:56:55