Ich versuche, ein Subarray in Scala zu bekommen, und ich bin ein wenig verwirrt darüber, wie es richtig gemacht wird. Was ich am liebsten hätte, wäre so etwas wie das in Python:
x = [3, 2, 1]
x[0:2]
aber ich bin ziemlich sicher, dass Sie dies nicht tun können.
Der naheliegendste Weg, dies zu tun, wäre die Verwendung der Java Arrays util-Bibliothek.
import java.util.Arrays
val start = Array(1, 2, 3)
Arrays.copyOfRange(start, 0, 2)
Aber es macht mich immer ein bisschen schmutzig, Java-Bibliotheken in Scala zu verwenden. Der "skalaischste" Weg, den ich gefunden habe, wäre
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
}
Aber gibt es einen besseren Weg?