最佳答案
我试图在 scala 中获取一个子数组,但是我对正确的方法有些困惑。我最想要的是你在 python 中如何做到这一点:
x = [3, 2, 1]
x[0:2]
但我很确定你不能这么做。
最明显的方法是使用 JavaArrayutil 库。
import java.util.Arrays
val start = Array(1, 2, 3)
Arrays.copyOfRange(start, 0, 2)
但是在 Scala 中使用 Java 库总是让我觉得有点肮脏。我找到的最“不规则”的方法是
def main(args: List[String]) {
val start = Array(1, 2, 3)
arrayCopy(start, 0, 2)
}
def arrayCopy[A](arr: Array[A], start: Int, end: Int)(implicit manifest: Manifest[A]): Array[A] = {
val ret = new Array(end - start)
Array.copy(arr, start, ret, 0, end - start)
ret
}
但有更好的办法吗?