चूंकि मैं स्कैला में आया, मैंने पूंछ रिकर्सन का उपयोग करके फ़ंक्शन लिखना शुरू किया, और सीखा कि सी ++ कंपाइलर्स इसका भी समर्थन करते हैं, और पूंछ रिकर्सिव फ़ंक्शंस को भी अनुकूलित करते हैं। अब मैं उत्सुक हूं कि ऑप्टिमाइज़ेशन कितना भरोसेमंद है, और क्या यह मेरे मुख्य लूप या कमांड प्रॉम्प्ट जैसी चीज़ों के लिए उपयोग करना ठीक है?स्कैला/सी ++: इनपुट लूप के बजाय टेल रिकर्सिव फ़ंक्शन
इस तरह परंपरागत रूप से मैं लिखा है आदेश संकेतों:
bool running = true;
string input;
while(running_){
input = getInput();
executeCommand(input);
if(input == "quit") running_ = false;
}
अब यह एक बुरी बात इस तरह एक पूंछ पुनरावर्ती क्रिया के साथ इस को बदलने के लिए हो सकता है?
string input = "nothing";
void parseInput(){
if(input != "nothing") executeCommand(input);
getline(cin, input);
if(input != "quit") parseInput();
}
शानदार विचार! – UmNyobe