मैं एक स्कैला नौसिखिया हूँ। मैंने कुछ किताबों के माध्यम से उगाया है, और कुछ ऑनलाइन ट्यूटोरियल पढ़ा है। मेरी पहली परियोजना में समस्याएं आ रही हैं, इसलिए मैंने कोड को सबसे सरल चीज़ में कम कर दिया है जो गलत हो सकता है।varargs के साथ स्कैला में रचनाकार
मैंने स्केल/कन्स्ट्रक्टर/varargs के लिए Google और स्टैक ओवरफ़्लो खोजा है, और स्कैला के कुछ पर्यटन पढ़े हैं।
(लगभग) सबसे सरल कोड है:
class Foo(val params: Int*)
case class Foo1(val p: Int) extends Foo(p)
case class Foo2(val p1: Int, val p2: Int) extends Foo(p1, p2)
object Demo extends App {
override def main(args: Array[String]) {
val f = Foo2(1, 2)
f.p1
}
}
अपवाद तब होता है जब तक पहुँचने p1 और है
सूत्र में अपवाद "मुख्य" java.lang.ClassCastException: scala.collection.mutable.WrappedArray $ ofInt java.lang.Integer
ग्रहण का उपयोग कर डिबगिंग का सहारा में ढाला नहीं जा सकता है, मैं एक दिलचस्प संपत्ति पाया: जब चर को देख
f Foo2 (id=23)
p2 2
params WrappedArray$ofInt (id=33)
array (id=81)
[0] 1
[1] 2
तो पी 1 के साथ क्या हुआ?
मैं एक नौसिखिया सवाल के साथ आप परेशान करने के लिए माफी चाहता हूँ
वाट चलाता है। मेरा पहला स्कैला बग। ठीक है धन्यवाद। मेरे पास एक काम है, लेकिन मैं मदद की सराहना करता हूं। इसने मुझे फोरट्रान समकक्ष ब्लॉक, या पास्कल संस्करण रिकॉर्ड की याद दिला दी। –
बीटीडब्ल्यू, 'कक्षा एक्स (वैल पी: इंट *)' ज्यादा समझ में नहीं आता है। 'दसवीं कक्षा (वैल पी: Seq [इंट])' या 'दसवीं कक्षा (पी: इंट *) {def पैरामीटर आप एक्स के निर्माण के बाद' p' के लिए उपयोग करना चाहते हैं तो बस varargs के बजाय एक दृश्य का उपयोग करें: सेक [Int] = p} '। – sschaef