में Arrays को संयोजित करते समय दिलचस्प निष्कर्ष मुझे स्कैला में ऐरे संयोजन को समझने में कुछ परेशानी हो रही है।स्केल
ठीक निम्नलिखित काम करता है:
scala> Array('0', '1', '2') ++ Array('A', 'B', 'C')
res0: Array[Char] = Array(0, 1, 2, A, B, C)
लेकिन यह एक नहीं करता है:
scala> ('0' to '9').toArray
res1: Array[Char] = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
scala> ('A' to 'Z').toArray
res2: Array[Char] = Array(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
scala> res1 ++ res2
res3: Array[Char] = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
एक और दिलचस्प बिट मैंने पाया:
scala> ('0' to '9').toArray ++ ('A' to 'Z').toArray
<console>:8: error: polymorphic expression cannot be instantiated to expected type;
found : [B >: Char]Array[B]
required: scala.collection.GenTraversableOnce[?]
('0' to '9').toArray ++ ('A' to 'Z').toArray
^
इसके अलावा, निम्नलिखित काम करने के लिए लगता है:
scala> (('0' to '9').toArray) ++ (('A' to 'Z').toArray[Char])
res4: Array[Char] = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
मैं वास्तव में यह समझा नहीं सकता - क्या मुझे कुछ याद आ रही है?
यह दोनों सीमाओं पर क्यों समय से पहले toArray द्वारा, वास्तविक प्रश्न का उत्तर नहीं है? नहीं होगा (('0' से '9') ++ ('ए' से 'ज़ेड'))। ToArray' इस समस्या को रोकें? – whaley
मुझे लगता है कि यह इस प्रश्न से जुड़ा हुआ है http://stackoverflow.com/questions/6675419/in-scala-why-do-i-get-this-polymorphic-expression-cannot-be-instantiated-to-ex और प्रकार अनुमान –
@waley मैं सिर्फ Arrays के साथ खेल रहा था और उस खोज में आया जो मैं समझा नहीं सकता था। मुझे पता है कि अंतिम परिणाम कैसे प्राप्त करें, लेकिन मैं वास्तव में समझा नहीं सकता कि क्यों '(' 0 'से' 9 ')। ToArray ++ (' ए 'से' Z ')। ToArray' काम नहीं करता है। @ डेविड मिचेलगैंग हाँ, यह वही त्रुटि जैसा दिखता है, लेकिन मैं वास्तव में समझ नहीं पा रहा हूं कि यह स्पष्टीकरण यहां कैसे लागू होता है। – argyakrivos