बेवकूफ सवाल मेरा मानना है, लेकिन मुझे लगता है कि बस अन्य रचनाकारों को कन्स्ट्रक्टर से बुला रहा है। मुझे एक विधि कॉल करने की जरूरत है। मेरी कक्षा (शुरुआत):कन्स्ट्रक्टर में कुछ कार्रवाई कैसे जोड़ें?
class ScopedIterator[T](val iter : Iterator[T])
{
private var had_next : Boolean;
private var value : T;
moveNext();
...
तो मैं एक तर्क के साथ एक निर्माता करना चाहते हैं, और इस तरह निर्माता में एक विधि moveNext कहते हैं। बस इतना ही।
error: abstract member may not have private modifier
private var had_next : Boolean;
और मूल्य के लिए एक ही:
जब मैं कोड संकलन मैं त्रुटि मिलती है।
मैं करने के लिए इसे बदल दिया है:
class ScopedIterator[T]
{
private var had_next : Boolean;
private var value : T;
private var iter : Iterator[T];
def this(it : Iterator[T]) =
{
iter = it;
moveNext();
}
...
लेकिन अब मैं "आईटीईआर = यह" पर त्रुटि मिलती है:
error: 'this' expected but identifier found.
iter = it;
कैसे स्काला में इस तरह के निर्माता लिखने के लिए?
विशेष रूप से आपको 'iter = it' पर क्या त्रुटि मिलती है? – asm
@ एंड्रयू मायर्स, क्षमा करें, अपडेट किया गया। – greenoldman