Я намагаюся отримати підрядок в масштабі, і я трохи розгублений у тому, що це правильний спосіб. Мені б найбільше хотілося б щось подібне, як це можна зробити в python:
x = [3, 2, 1]
x[0:2]
але я впевнений, що ви не можете цього зробити.
Найбільш очевидний спосіб зробити це - використовувати утиліту бібліотеки Java Arrays.
import java.util.Arrays
val start = Array(1, 2, 3)
Arrays.copyOfRange(start, 0, 2)
Але мені завжди стає трохи брудно використовувати бібліотеки Java у Scala. Найбільш "масштабним" способом я виявив би це зробити
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
}
але чи є кращий спосіб?