J'essaie d'obtenir un sous tableau en scala, et je suis un peu confus sur la façon appropriée de le faire. Ce que j'aimerais le plus, c'est quelque chose comme ce que l'on peut faire en Python :
x = [3, 2, 1]
x[0:2]
mais je suis presque certain que vous ne pouvez pas faire ça.
La façon la plus évidente de le faire serait d'utiliser la bibliothèque Java Arrays util.
import java.util.Arrays
val start = Array(1, 2, 3)
Arrays.copyOfRange(start, 0, 2)
Mais je me sens toujours un peu coupable d'utiliser des bibliothèques Java en Scala. La façon la plus "scalaïque" que j'ai trouvée pour le faire serait de
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
}
mais y a-t-il un meilleur moyen ?