如何在Scala中使此方法通用

时间:2016-11-13 02:50:11

标签: scala

这是一个给出索引的简单函数,从最后一个

中查找数组中的项

e.g。给定val arr = Array(1,2,3)val i = 0;它将返回3

  def findIndexFromLast(arr: Array[Relationship], i: Int): Relationship = {
    val cur = i
    val size = arr.length

    arr(size - i - 1)
  }

我想让它成为通用的,并且能够接受任何类型的数组

2 个答案:

答案 0 :(得分:2)

def findIndexFromLast[A](arr: Array[A], i: Int): A = {
    val cur = i
    val size = arr.length

    arr(size - i - 1)
}

答案 1 :(得分:2)

如果您将第一个参数设为Seq(),则会将许多不同类型的集合作为输入。

def fromEnd[T](coll: Seq[T], index: Int):T = coll.reverse(index)

fromEnd(Array(1,3,5,7,9), 0)                 // res0: Int = 9
fromEnd(List('x','y','q','b'), 3)            // res1: Char = x
fromEnd(Vector(2.2, 5.4, 7.7), 2)            // res2: Double = 2.2
fromEnd(Stream(true, true, false, true), 1)  // res3: Boolean = false