私はscalaでサブアレイを取得しようとしていますが、それを行う適切な方法が何かについて少し混乱しています。私が最も欲しいのは、Pythonでそれを行う方法のようなものです:
x = [3, 2, 1]
x[0:2]
しかし、私はあなたがこれを行うことができないとかなり確信しています。
それを行う最も明白な方法は、Java Arrays utilライブラリを使用することです。
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
}
しかし、もっと良い方法はありますか?