scala - formato - marc 21 pdf
¿Cuál es la forma correcta de obtener un subcampo en Scala? (1)
Puedes llamar al método de corte:
scala> Array("foo", "hoo", "goo", "ioo", "joo").slice(1, 4)
res6: Array[java.lang.String] = Array(hoo, goo, ioo)
Funciona como en python.
Estoy tratando de obtener un submamario en scala, y estoy un poco confundido sobre cuál es la forma correcta de hacerlo. Lo que más me gustaría sería algo así como cómo puedes hacerlo en Python:
x = [3, 2, 1]
x[0:2]
pero estoy bastante seguro de que no puedes hacer esto.
La forma más obvia de hacerlo sería utilizar la biblioteca de utilidades Java Arrays.
import java.util.Arrays
val start = Array(1, 2, 3)
Arrays.copyOfRange(start, 0, 2)
Pero siempre me hace sentir un poco sucio usar las bibliotecas de Java en Scala. La manera más "escalar" que encontré para hacerlo sería
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
}
¿Pero hay una manera mejor?