代码之家  ›  专栏  ›  技术社区  ›  Ashwin

使用map创建数组(具有泛型类型)的副本会导致错误[scala]

  •  1
  • Ashwin  · 技术社区  · 7 年前

    我正在尝试使用maps复制一个泛型类型的数组。

    class MaObj[T](val arr : Array[T])(implicit ordering : Ordering[T]) {
    
      val internalCopy : Array[T] = arr.map(e => e) //This line
    

    但我运行它会给出一个错误的说法

    found   : scala.collection.mutable.ArraySeq[T]
     required: Array[T]
     Note: implicit value comparison is not applicable here because it comes after the application point and it lacks an explicit result type
    val internalCopy : Array[T] = arr.map(e => e)
    

    我搞不懂这个道理。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Dima    7 年前

    .map ArraySeq Array Array.newInstance(clazz, numElements) T

    class MaObj[T : ClassTag : Ordering](val arr : Array[T])
    

    class MaObj[T](val arr: Array[T])(implicit ev1: ClassTag[T], ev2: Ordering[T])

    .clone

    IndexedSeq

        2
  •  1
  •   Markus Appel    7 年前

    .map Array .clone

    class MaObj[T](val arr : Array[T])(implicit ordering : Ordering[T]) {
    
      val internalCopy: Array[T] = arr.clone
    
    }
    

    Try it out!