J'essaie d'obtenir un sous-tableau dans scala, et je ne sais pas trop quelle est la bonne façon de le faire. Ce que je voudrais le plus serait quelque chose comme comment vous pouvez le faire en python:
x = [3, 2, 1]
x[0:2]
mais je suis assez certain que vous ne pouvez pas faire cela.
La manière la plus évidente de le faire serait d'utiliser la bibliothèque utilitaire Java Arrays.
import java.util.Arrays
val start = Array(1, 2, 3)
Arrays.copyOfRange(start, 0, 2)
Mais cela me fait toujours me sentir un peu sale d'utiliser les bibliothèques Java dans Scala. La manière la plus "scalaïque" que j'ai trouvée pour le faire serait
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 une meilleure façon?