मैं स्कैला में एक सबर्रे प्राप्त करने की कोशिश कर रहा हूं, और मैं थोड़ा उलझन में हूं कि यह करने का उचित तरीका क्या है। मैं सबसे ज्यादा क्या चाहूंगा जैसे कि आप इसे अजगर में कैसे कर सकते हैं:
x = [3, 2, 1]
x[0:2]
लेकिन मुझे पूरा यकीन है कि आप ऐसा नहीं कर सकते।
यह करने के लिए सबसे स्पष्ट तरीका जावा एरेस उपयोग पुस्तकालय का उपयोग करना होगा।
import java.util.Arrays
val start = Array(1, 2, 3)
Arrays.copyOfRange(start, 0, 2)
लेकिन यह हमेशा मुझे स्काला में जावा पुस्तकालयों का उपयोग करने के लिए थोड़ा गंदा महसूस करता है। सबसे "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
}
लेकिन क्या कोई बेहतर तरीका है?