Ölçekli bir alt dizi almaya çalışıyorum ve bunu yapmanın doğru yolunun ne olduğu konusunda biraz kafam karıştı. En çok istediğim şey, bunu python'da nasıl yapabileceğiniz gibi bir şey olurdu:
x = [3, 2, 1]
x[0:2]
ama bunu yapamayacağına oldukça eminim.
Bunu yapmanın en açık yolu, Java Dizileri kullanım kitaplığını kullanmak olacaktır.
import java.util.Arrays
val start = Array(1, 2, 3)
Arrays.copyOfRange(start, 0, 2)
Ama Scala'da Java kitaplıklarını kullanmak beni her zaman biraz kirli hissettiriyor. Bunu yapmanın en "ölçekleyici" yolu,
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
}
ama daha iyi bir yol var mı?