के साथ गंभीर रूप से नकली "तर्क नहीं लेता" त्रुटि है मेरे पास एक केस क्लास है जिसमें उसके कन्स्ट्रक्टर के लिए कुछ पैरामीटर हैं, और मैं एक साथ क्लास ऑब्जेक्ट को परिभाषित करता हूं जो वैकल्पिक कन्स्ट्रक्टर को परिभाषित करता है जो तर्कों का एक अलग सेट लेता है, इसलिए जैसे:केस क्लास कन्स्ट्रक्टर
object SomeStuff {
def problem (s: String) {
assert(!s.isEmpty)
val zero = MyClass('a', Nil)
val mc2 = "Pillsy Pillsy Pillsy" foldRight(zero) {
MyClass(_, List(_))
}
}
}
जब मैं ऐसा करते हैं, मैं संकलक से एक त्रुटि संदेश मिलता है:: "MyClass
case class MyClass (c: Char, mc: List[MyClass])
object MyClass {
def apply(c: Char, mc: MyClass): MyClass = {
MyClass(c, List(mc))
}
}
मैं एक foldRight
में मूल मामले वर्ग निर्माता का उपयोग करना चाहते पैरामीटर नहीं लेता है। " अगर मैं val mc2 = ...
सेक्शन पर टिप्पणी करता हूं तो यह समस्या दूर हो जाती है, लेकिन MyClass
zero
की परिभाषा में स्पष्ट रूप से पैरामीटर ले रहा है। मुझे लगता है कि मुझे कुछ मूलभूत याद आना चाहिए, लेकिन मुझे नहीं पता कि यह क्या है। मैंने foldRight
के दूसरे तर्क के रूप में उपयोग करने के लिए एक सहायक विधि या फ़ंक्शन वैल्यू को परिभाषित करने जैसे कुछ कामकाज की कोशिश की है, लेकिन इसमें से कोई भी मदद नहीं करता है, जो कि आश्चर्यजनक नहीं है क्योंकि मैं मूल रूप से यादृच्छिक रूप से घूम रहा हूं।