में उपज का उपयोग करके लौटने और पुनरावर्तनीय संग्रह मेरे पास स्कैला में डेटटाइम और टाइमस्पेन क्लास है (मान लीजिए कि < और + ऑपरेटर काम करते हैं)। मैं एक 'रेंज' फ़ंक्शन को परिभाषित करने की कोशिश कर रहा हूं जो स्टार्ट/स्टॉप टाइम और स्टेपिंग के लिए एक टाइमपैन लेता है। सी # में मैं इसे उपज के साथ करता हूं, और मुझे लगता है कि मुझे स्कैला में ऐसा करने में सक्षम होना चाहिए ... सिवाय इसके कि मुझे एक अजीब त्रुटि मिल रही है।स्केल
'उपज टी' लाइन पर, मुझे "बयान की अवैध शुरुआत" मिलती है। 1) क्या मैं गलत क्या किया:
def dateRange(from : DateTime, to : DateTime, step : TimeSpan) =
{
// not sure what the list'y way of doing this is
var t = from
while(t < to)
{
yield t; // error: illegal start of statement
t = t + step
}
}
इस कोड को देखते हुए, मैं 2 चीजों के बारे में उत्सुक हूँ? 2) लिखित कोड बहुत जरूरी है (एक var टी, आदि का उपयोग करता है)। स्कैला में ऐसा करने का अधिक कार्यात्मक तरीका क्या है जो उचित रूप से तेज़ है?
धन्यवाद!
'स्काला में yield' जो भी कुछ भी नहीं' सी # (या अजगर) में yield' से कोई लेना देना नहीं है। इसके अलावा, स्कैला के बराबर इसके बराबर नहीं है - स्कैला, पायथन, उपज और जनरेटर के बारे में कई प्रश्न देखें। और, ज़ाहिर है, 'उपज' वास्तव में क्या करता है इसके बारे में प्रश्न देखें। –
मैंने किया, और मैं उलझन में था। डेबिलस्की के जवाब ने मुझे उन सभी को बताया जो मुझे जानना था। – fbl