ฉันกำลังพยายามหา subarray ใน scala และฉันสับสนเล็กน้อยว่าวิธีที่เหมาะสมในการทำคืออะไร สิ่งที่ฉันต้องการมากที่สุดคือสิ่งที่คุณสามารถทำได้ใน 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 วิธีที่ "scalaic" มากที่สุดที่ฉันพบจะเป็น
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
}
แต่มีวิธีที่ดีกว่านี้ไหม