나는 스칼라에서 하위 배열을 얻으려고 노력하고 있으며 적절한 방법이 무엇인지에 대해 약간 혼란 스럽습니다. 내가 가장 원하는 것은 파이썬에서 어떻게 할 수 있는지와 같은 것입니다.
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 라이브러리를 사용하는 것은 항상 나를 조금 더럽게 만듭니다. 내가 찾은 가장 "scalaic"방법은
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
}
하지만 더 좋은 방법이 있습니까?