लौटाया गया चर "परिणाम" नाम देना एक अच्छा अभ्यास है? [बन्द है]


44

क्या चर को विधि के नाम से पुकारते हुए पुकारना अच्छा है result?

उदाहरण के लिए:

public Zorglub calculate() {
    Zorglub result = [...]
    [...]
    return result;
}

या मुझे इसके प्रकार से नाम देना चाहिए?

public Zorglub calculate() {
    Zorglub zorglub = [...]
    [...]
    return zorglub;
}

मैंने दोनों को जंगल में देखा है, अगर मुझे किसी एक को चुनने की आवश्यकता है तो क्या कारण मुझे पूर्व या उत्तरार्ध (या कोई बेहतर नाम) पसंद कर सकते हैं?

मैं मुख्य रूप से जावा के बारे में सोच रहा हूं।


73
मैंने ofTheJediउस उद्देश्य के लिए भी इस्तेमाल किया है। सिफारिश नहीं, सिर्फ यह कहते हुए कि मैंने इसे देखा है। Zorglub ofTheJedi = //...; return ofTheJedi;

7
मैं आमतौर पर इसे "रिटवल" (वापसी के लिए मूल्य) कहता हूं, लेकिन यह कमोबेश "परिणाम" के समान है, जिसे मैं अपना वोट डालूंगा।
जीटा दो

5
हर किसी के पास एक अलग उत्तर है, वे सभी समान हैं, लेकिन अलग-अलग और मान्य हैं, प्रश्न स्वेच्छा से व्यक्तिपरक नहीं है, लेकिन उत्तर हैं। यह एक सर्वेक्षण के अधिक है।
ZJR

16
मैं कहूंगा कि एक चर के रूप में "परिणाम" ठीक है, लेकिन फ़ंक्शन के रूप में "गणना" बिल्कुल नहीं है।
काज ड्रैगन

2
क्या आप बहुत सारे डेल्फी प्रोग्रामर के साथ काम करते हैं?
पीटर टर्नर

जवाबों:


48

यदि यह एक विधि चर है, तो यह वास्तव में पठनीयता पर निर्भर करता है।

जैसा कि आपके पास पहले से ही चर घोषणा और विधि वापसी प्रकार दोनों में टाइप नाम है, आप उपयोग कर सकते हैं result- यह चर की भूमिका के बारे में वर्णनात्मक है।


40

यदि चर का नाम दिया गया है तो क्रॉस-रीडिंग को आसान बना दिया गया है result। इससे आपका इरादा स्पष्ट हो जाता है।


2
+1 यह मुख्य बिंदु है। मुझे पता है कि किसी भी संदर्भ में कोड पर नज़र रखने से क्या परिणाम होता है।
Xeoncross 15

1
मैं मानता हूं, चर प्रकार का उपयोग करने से आपको यह समझने में मदद नहीं मिलती है कि आपका इसे वापस करने जा रहा है। इन सरल उदाहरणों में, रिटर्न डब्ल्यू / ओ स्क्रॉल या देखना आसान है, लेकिन इसके तेजी से सामने आने से पता चलता है कि फ़ंक्शन का लौटा मूल्य क्या है। उदाहरण के रूप में किया गया है, यह भी initalize करने के लिए महत्वपूर्ण है।
21

17

अगर मुझे रिटर्न वैरिएबल की जरूरत है (जो वास्तव में शायद ही कभी होता है), मैं हमेशा इसे कॉल करता हूं retऔर इसे हमेशा फ़ंक्शन हेड के ठीक नीचे परिभाषित करता हूं । फ़ंक्शन में पहले से ही एक नाम है, जो सभी के बारे में कहता है कि वह क्या लौटाता है।

अगर मेरे पास नाम है तो myFunctionमैं इसे एक ही बात कहने के लिए वैरिएबल रिटर्न कर सकता हूं myFunctionReturnValue, केवल मुझे हर एक बार यह स्पष्ट रूप से कहना होगा। चूंकि फ़ंक्शंस आम तौर पर कम होना चाहिए, इसलिए इस तरह के खोजकर्ता की कोई आवश्यकता नहीं है। और यहां तक ​​कि अगर मैं ट्रैक खो देता हूं, तो मैं घोषणा में कूद सकता हूं और फ़ंक्शन परिभाषा के ठीक नीचे उतरूंगा।

लेकिन कोई भी अन्य नाम, जो स्पष्ट रूप से (जैसे retया result) या स्पष्ट रूप से (जैसे myFunctionReturnValueया myFunctionResult) राज्य नहीं करता है, कि यह वर्तमान कार्य रिटर्न चर बहुत सामान्य है।

अपने दूसरे उदाहरण zorglubमें एक भयानक विकल्प है। सभी घोषणा वास्तव में मुझे बताती है कि आपने एक चर बनाया है, जिसका नाम नाम के ठीक बगल में पाए जाने वाले एनोटेशन के बराबर है। यह रूप में उपयोगी के रूप में के बारे में है int someIntया Zorglub z

आपके पहले उदाहरण में, जब मैं कोड को देखता हूं, तो मैं पहली बार फ़ंक्शन का नाम देखता हूं, जो मुझे बताता है, कि यह फ़ंक्शन एक गणना करता है Zorglub। जैसा कि मैंने दूसरी पंक्ति पढ़ी है, मैं देख रहा हूँ "ठीक है, यहाँ जोर्ग्लूब है, जो वापस आने वाला है, लेकिन यह स्पष्ट रूप से तुरंत वापस नहीं किया जा सकता है और इसलिए इसे resultचर में संग्रहीत किया जाता है" (साइड नोट के रूप में: यदि आप हैं मान को पुन: असाइन करने के लिए नहीं जा रहा है, तो आप सबसे अच्छा है कि वैरिएबल फाइनल को संप्रेषित करने के लिए घोषित करें), और फिर मुझे लगता है "तो अब देखते हैं कि क्या होता है इससे पहले कि यह वापस हो जाए"। पहले उदाहरण के विपरीत, मुझे वास्तव में इससे आगे पढ़ने की ज़रूरत नहीं है कि यह जानने के लिए कि यह चर है, यह वापस आने वाला है और अगर मैं इसे समझना चाहता हूं तो मैं फ़ंक्शन बॉडी में पालन करना चाहता हूं।

आप स्पार्टन प्रोग्रामिंग पर पढ़ना चाह सकते हैं , जो आपके प्रश्न से संबंधित है।


8
"Zorglub एक भयानक विकल्प है" के लिए +1। चर नाम होने का कोई सांसारिक कारण नहीं है, किसी भी संदर्भ में, जो कि प्रकार के नाम (प्रारंभिक पूँजी के बराबर) के समान है। घोषणा आपको चर के प्रकार को बताती है - अपने प्रकार के बाद अपने चर का नामकरण आपके चर X1, x2, x3 और इतने पर कॉल करने से बेहतर नहीं है। किसी भी चर का नाम व्यक्त करना चाहिए कि चर क्या है या यह क्या करता है। इस विशेष मामले में एक चर के लिए मेरा पसंदीदा नाम toRurnurn है - क्योंकि चर संदर्भ वस्तु को वापस करने के लिए है। वास्तव में, मेरे बहुत से चर नाम "से" तक शुरू होते हैं।
दाऊद का कहना है कि मोनिका

21
@ डेविडवैलस - यह एक बहुत मजबूत है। मेरे पास एक वर्ग है जिसे बुलाया जाता है Container। अगर मेरे पास एक ऐसा तरीका है जो मात्रा को संशोधित करता है, तो मैं कह सकता हूं var container = getContainer(id); container.Quantity += 1; कि यह निश्चित रूप से पठनीय है यदि विधि का संदर्भ केवल एक कंटेनर पर काम करता है, और यह सब करता है। इसे कॉल करना theContainerWeAreGoingToAdjustTheQuantityOfहास्यास्पद है।
स्कॉट व्हिटलॉक

4
@ डेविड, मैं असहमत हूं। आइए ऐसी स्थिति लें जहां आपके पास कई स्थानीय चर हों, प्रत्येक अलग प्रकार का हो (मान लें कि उपयोगकर्ता, प्रबंधक और विभाग)। और मान लीजिए कि कार्य उपयोगकर्ता को विभाग और प्रबंधक की टीम से जोड़ना है। IMHO यह पूरी तरह से इस उपयोगकर्ता उदाहरण को कॉल करने के लिए ठीक है user(जैसा कि विरोध किया गया है userToJoinThisDepartmentAndManager? या आपकी पसंद क्या होगी?)
Péter Török

10
माइनर नाइटपिक: मुझे "रिट" या "आरवी" या परिणाम के अन्य संक्षिप्त रूपों को देखने से नफरत है। "परिणाम" बहुत लंबा नहीं है, और किसी को पात्रों के संरक्षण की आवश्यकता नहीं है।
क्रिस्टोफर जॉनसन

2
@ क्रिस्टोफर जॉनसन: "परिणाम" बहुत लंबा नहीं है, लेकिन इसका अर्थ "वापसी मूल्य" भी नहीं है। रिटर्न-वैल्यू हमेशा गणना के परिणाम नहीं होते हैं, और इसके विपरीत, गणना के परिणाम हमेशा रिटर्न-वैल्यू नहीं होते हैं। मुझे लगता है कि आप अपने रिटर्न-वैल्यू को नाम दे सकते हैं returnValue, लेकिन retपारंपरिक है, जैसे intऔर char
बर्बाद करें

12

अपने दूसरे उदाहरण में, आप परिणाम के प्रकार को बता रहे हैं कि यह क्या है

Zorglub zorglub;

बस मुझे बताता है कि यह एक ज़ोर्गल है, दो बार। तीन बार अगर मैं विधि वापसी प्रकार को पढ़ने के लिए परेशान करता हूं। हालाँकि,

double variance;

उदाहरण के लिए, मुझे क्या दिया गया मान के बारे में सुराग देता है साधन , कार्यक्रम अर्थ विज्ञान के संदर्भ में। यह resultविधि के आकार के आधार पर इसे कॉल करने की तुलना में कोई भी स्पष्ट नहीं हो सकता है या नहीं हो सकता है - यह कि प्रत्येक विधि IMO के लिए एक निर्णय कॉल है।


8

आप कई Zorglub अपने तरीकों में वस्तुओं के साथ खेलने हैं, तो आप एक गलती करते हैं "हो सकता है" और गलत एक लौटने, या / और आप अन्य लोगों का नाम करने के लिए परीक्षा हो सकता है zorglub1, zorglub2आदि

यदि आप इसे नाम देते हैं result, तो आपके लिए इस तरह की गलती करने का कोई मौका नहीं है। इसके अलावा, मुझे लगता है कि एक अच्छा नाम है; मैंने भी देखा है returnedValueया returnedObjectकई बार, यह भी स्पष्ट है कि थोड़ा लंबा है।


5

मैं व्यक्तिगत resultरूप से एक चर नाम के रूप में पूरी तरह से सहज नहीं हूं । पर्याप्त रूप से, यह मुझे बताता है कि संबद्ध मूल्य कुछ संगणना का परिणाम है - हालांकि, मुझे लगता है कि एक कार्यक्रम में उपयोग किए जाने वाले 90% चर / क्षेत्रों के बारे में सच है।

इसके अलावा, कई अन्य उत्तरों के रूप में, इसका उपयोग किसी विधि / फ़ंक्शन से लौटाए जाने वाले मान को चिह्नित करने के लिए किया जा सकता है। हालाँकि, अगर मैं अपने तरीकों को छोटा रखता हूं, तो केवल एक काम करने पर ध्यान केंद्रित करें और एक स्तर पर लगातार अमूर्त बने रहें, मेरे पास कई स्थानीय चर नहीं होंगे और यह देखने के लिए तुच्छ होगा कि एक विधि क्या वापसी करने जा रही है।

इसलिए मैं अपने तरीकों को छोटा और साफ रखना पसंद करता हूं, और अपने वैरिएबल को नाम देता हूं कि वे जिस मूल्य को पकड़ते हैं, उसके अर्थ को व्यक्त करने के बजाय एन्क्लोजिंग विधि के अंदर अपनी स्थानीय भूमिका निभाएं। हालाँकि, (जैसे विरासत कोड में) Zorglub resultनिश्चित रूप से समझने में आसान हो सकता है Zorglub zorglub


12
इसे नहीं कहा जाता है resultक्योंकि यह कुछ गणना का परिणाम है ; इसे कहा जाता है resultक्योंकि यह इस संगणना का परिणाम है । यह इसके अर्थ IMO के रूप में भी काम करता है, भले ही यह सबसे विशिष्ट अर्थ संभव न हो। व्यक्त अर्थ सुनहरा है, लेकिन इरादा और मुहावरे भी मूल्यवान हो सकते हैं। इस मामले में यह एक व्यापार बंद सा है।
सुप्र

@Supr: किसी अन्य संगणना के परिणाम का वर्णन करने के लिए आप किस नाम का उपयोग करेंगे, जिसका उपयोग केवल अगले कथन या दो में किया जाएगा (उदाहरण के लिए if (result >= 0) numChars+=result; else break;, और जिसका अर्थ प्रश्न में अभिकलन से स्पष्ट होगा?) मेरे दिमाग में, मूल्य? कि होगा से लौटाया नहीं इस बुलाया जाना चाहिए समारोह retहै, जबकि मूल्य है कि गया था पिछले बुलाया समारोह से वापस आ जाना चाहिए result। ध्यान दें कि resultयदि फ़ंक्शन का रिटर्न मान उदाहरण या तो एक मात्रा या त्रुटि कोड का प्रतिनिधित्व कर सकता है, तो एक लंबे नाम से अधिक सार्थक हो सकता है।
सुपरकैट

@ सुपरकैट, मैं इसका नाम इस आधार पर रखूँगा कि गणना क्या थी या मूल्य का क्या उपयोग करने का इरादा है। यहां तक ​​कि अगर यह केवल अगले संगणना में उपयोग किया जाता है, तो यह अभी भी पठनीयता में मदद करता है यदि यह अच्छी तरह से नामित है। आपके उदाहरण में मुझे पता नहीं है कि resultउच्च स्तर पर कोड वास्तव में क्या है या क्या है। मुझे यह देखना होगा कि यह कहाँ सेट किया गया है, यह देखने के लिए कि इसका मूल्य कहाँ से आया है और यह क्या है। कुछ ऐसा है addedCharsया matchedCharsअधिक पारदर्शी होगा और यह पता लगाने में मदद करेगा कि कोड क्या कर रहा है, और इसके लिए मानसिक रूप से result = ...
बाजी मारने की

@ Supr: समस्या यह है कि कई मामलों में, रिटर्न वैल्यू की विभिन्न श्रेणियों का मतलब अलग-अलग चीजें हो सकती हैं। उदाहरण के लिए, एक पैकेट को निर्दिष्ट आकार के बफर में पढ़ने के लिए एक रूट कई बाइट्स वापस कर सकता है यदि एक पैकेट प्राप्त किया गया था, या एक नकारात्मक संख्या इंगित करने के लिए कि एक पैकेट (और अभी भी) लंबित है जो बफर के लिए बहुत बड़ा है। या किसी अन्य त्रुटि को इंगित करने के लिए वास्तव में बड़ी नकारात्मक संख्या। रिटर्न को स्टोर करना resultऔर फिर उन मानदंडों के खिलाफ जांच करना एक वर्णनात्मक नाम के साथ आने की तुलना में अधिक स्वाभाविक प्रतीत होगा जो उन सभी को कवर करता है।
सुपरकैट

@supercat, के retबजाय का उपयोग resultकरके मेरे द्वारा ठीक लगता है। यह मेरी राय में थोड़ा कम स्पष्ट है क्योंकि यह संक्षिप्त है और संज्ञा की तरह नहीं है, लेकिन अगर इसे लगातार उपयोग किया जाता है तो यह बराबर है result
सुपारी

1

मैं व्यक्तिगत रूप resultसे फ़ंक्शन / विधि से दिए जाने वाले मान के लिए नाम का उपयोग करता हूं । यह स्पष्ट करता है कि यह लौटाया जाने वाला मूल्य है। प्रकार से इसका नामकरण उपयोगी नहीं लगता है, क्योंकि एक ही प्रकार के एक से अधिक चर हो सकते हैं।


उम्म, निश्चित रूप से तथ्य यह है कि यह 'वापसी' कहेगा इससे पहले कि यह पर्याप्त है स्पष्ट है? आपको वर्णन करना चाहिए कि आप इसके साथ क्या करेंगे, अब 'कैसे'। इसे कुल के परिणाम, परिणाम, या कुछ और वर्णनात्मक क्यों नहीं कहा जाता है, तो आपका कोड "कुल रिटर्न" या इसी तरह तैयार होगा ...
डेव

@ जरूरी नहीं है, खासकर यदि आपको उसी प्रकार की कुछ वस्तुएं मिली हैं, जिन्हें वापस करने के लिए सभी कैंडिटेट हैं, (विधि का उद्देश्य यह पता लगाना है कि कौन सा वापस लौटने के लिए उचित है।
एंडी

@ और मैं आपकी बात देख रहा हूं, लेकिन वास्तव में, मैं इस तरह एक समारोह लिखने की कल्पना नहीं कर सकता। अगर ऐसा कोई फ़ंक्शन लिखने का कारण है, तो ऐसा लगता है कि इसे छोटे और समझने योग्य कार्यों में तोड़ दिया जाना चाहिए।
डेव

1

क्या फर्क पड़ता है? इसके सिर्फ 2 अलग-अलग शब्द हैं जो एक ही काम करेंगे ताकि असली समस्या वह हो जो आपको स्पष्ट लगती है?

"परिणाम" या "जोर्ग्लूब"।

मैं ZorglubResultएक स्टार्टर का उपयोग करना पसंद करूंगा ताकि परिणाम Zorglub आपके द्वारा प्राप्त किए जा सकने वाले अन्य परिणामों के साथ तुलना करने में आसान हो सके और इसके परिणामस्वरूप आप देख सकें।


1

क्या मुझे इसे इसके प्रकार से नाम देना चाहिए?

नहीं कभी नहीं। इसे सिस्टम हंगेरियन कहा जाता है और एक प्रोग्राम का उपयोग करने के विचार से तुच्छ रूप से पुराना है जो किसी भी समय किसी भी प्रकार के चर को प्रदर्शित कर सकता है।


1

जब भी आपको कोड में कुछ भी नाम देने की आवश्यकता होती है , तो आपको ऐसे नाम प्रदान करने चाहिए जो वर्णनात्मक, अर्थपूर्ण और पठनीय हों। रिटर्न वैरिएबल का मामला एक विशेष रूप से अच्छा उदाहरण है जहां लोग नामकरण को लेकर उदासीन हो जाते हैं।

यदि आपके पास एक फ़ंक्शन है जिसे स्पष्ट रूप से नाम दिया गया है, और आपको केवल एक पंक्ति की कोड की आवश्यकता है, तो आप नामकरण को पूरी तरह से छोड़ सकते हैं। अपने तरीकों को छोटा और एकल उद्देश्य बनाना हमेशा आदर्श होता है जिसे आपको लक्ष्य बनाना चाहिए। हालांकि, यह मामला है कि कभी-कभी आपको कोड की कई लाइनों के साथ एक फ़ंक्शन को पूरा करने की आवश्यकता होती है। मैं उन मामलों को अपने फ़ंक्शन के उद्देश्य से मिलान करने के लिए अपने चर का नाम देना हमेशा सलाह देता हूं।

यदि फ़ंक्शन का उद्देश्य गणना या निर्णय एल्गोरिथ्म के परिणाम को वापस करना है, तो resultआपके चर का उपयोग करने के लिए एक पूरी तरह से पर्याप्त नाम है, लेकिन क्या होगा यदि आपका फ़ंक्शन किसी सूची से आइटम वापस कर रहा है? क्या होगा यदि आपका फ़ंक्शन किसी अन्य उद्देश्य से सेवा दे रहा है जिसका गणित या सूचियों से कोई लेना-देना नहीं है? उन मामलों में, एक सार्थक नाम के साथ चर प्रदान करना बेहतर है जो संबंधित है कि फ़ंक्शन क्यों बनाया गया था। निश्चित रूप से, यदि आप चाहते थे तो आप परिणाम का उपयोग कर सकते हैं क्योंकि यह एक ऐसा नाम है जो किसी और चीज़ के साथ टकराव की संभावना नहीं है, हालांकि एक पठनीयता के दृष्टिकोण से यह आपके चर को और अधिक सार्थक और संदर्भ में नाम देने के लिए अधिक समझ में आता है।


0

मुझे उनका संयोजन पसंद है, दिखाता है कि यह क्या है और इसे वापस करने का इरादा है।

तो आपके उदाहरण में यह resultZorglub होगा

अगर यह वास्तव में मायने नहीं रखता है तो यह सिर्फ परिणाम होगा (परिणाम नहीं)


बुरा नहीं है, लेकिन मुझे लगता है कि अगर रिटर्न प्रकार बदलता है तो आपको अपने चर का नाम बदलना होगा। आधुनिक IDE के साथ यह एक या दो क्लिक में किया जाता है, वैसे भी मुझे लगता है।
जलयान

@ जयलयन हां, लेकिन अगर नाम से बाहर रखा गया था, तो यह एक ऐसा बदलाव है जो बिल्कुल भी नहीं होगा। (यदि कोई विधि इतनी लंबी है कि एक साधारण नाम स्पष्ट नहीं है, तो यह बहुत लंबा है और इसे फिर से भरना चाहिए।)
डोनल फेलो

@DonalFellows मैं आपसे पूरी तरह सहमत हूँ। स्रोत रिपॉजिटरी से अपडेट करते समय आप जितने कम बदलाव देखेंगे, उतना बेहतर होगा।
जलयान

ठीक है कि जब आप वापसी प्रकार बदलते हैं तो आप इसे चर नाम में भी बदलना भूल सकते हैं, यह एक समस्या है। अब तक यह मेरे लिए कभी समस्या नहीं रही। मैं अभी भी नाम में दोहरे इरादे दिखाना पसंद करता हूं, लेकिन पहले से ही अच्छा दिखने वाला इरादा कोड होने के साथ यह ओवरकिल भी हो सकता है। आप लोगों ने मुझे मना लिया। अगर मुझे इस तरह से अपने चर को कॉल करने की आवश्यकता महसूस होती है तो मैं तब तक रिफ्लेक्टर करूंगा जब तक मुझे किसी और चीज की आवश्यकता महसूस न हो। धन्यवाद
KeesDijk

0

मुझे कुछ बिंदु पर रिटर्न वैल्यू सेट करने और फिर सभी कोड को छोड़ returnदेने और इसे तुरंत संशोधित करने के लिए सशर्त का उपयोग करने के बीच बहुत अंतर नहीं दिखता है, इसलिए मैं सीधे रिटर्न के लिए जाता हूं, इसलिए कोई resultचर नहीं है।

यदि आपके पास एक मध्यवर्ती मूल्य है जो सशर्त कोड द्वारा बदला जा सकता है या नहीं हो सकता है, तो यह एक परिणाम (अभी तक) नहीं है, इसलिए इसे निश्चित रूप से नाम नहीं दिया जाना चाहिए।


0

जब मैं C ++ में काम कर रहा था और मुझे लगता है कि जावा में यह लागू हो सकता है।

जैसे

int Width() const
{
    Requires(....);
    Requires(....);

    //calculation

    Ensures(...);
    Ensures(...);
    return Result;
}

यह अनुबंध द्वारा डिजाइन है, क्योंकि यह सुनिश्चित करना चाहिए कि ब्लॉक विधि के अंत में होना चाहिए। लेकिन रिटर्न अंतिम होना चाहिए। हमारे पास नियम था कि रिजल्ट वापस करना केवल एक चीज थी जो सुनिश्चित ब्लॉक का पालन कर सकती थी।


0

एक पुनरावर्ती फ़ंक्शन में, पूंछ कॉल अनुकूलन के लिए परिणाम को चरण-दर-चरण तक ले जाने के लिए अक्सर प्रभावी होता है। उपयोगकर्ता को संकेत देने के लिए, कि उसे एक पैरामीटर प्रदान करने की आवश्यकता नहीं है, एक पैरामीटर को "परिणाम" नाम देना उचित हो सकता है:

def removeOccurence [A] (slice: Seq[A], original: Seq[A]) = {
  @scala.annotation.tailrec
  def remove (leftOriginal: Seq[A], result: Seq[A]) : Seq[A] =
    trimStart (slice, leftOriginal) match {
      case (h :: tail) => remove (tail, h +: result)
      case (Nil)       => result.reverse
    }
    remove (original, Nil)
}

लेकिन अधिक बार मैं 'कैरी' और 'सोफ़र' का उपयोग करता हूं, जिसे मैंने जंगली में देखा है, और जो ज्यादातर मामलों में विचार को थोड़ा बेहतर बना देता है।

एक दूसरा कारण निश्चित रूप से है, यदि आपका विषय 'परिणाम' शब्द का सुझाव देता है, उदाहरण के लिए यदि आप अंकगणितीय मूल्यांकन करते हैं। आप सूत्र को पार्स कर सकते हैं, चर को मानों से बदल सकते हैं, और अंत में एक परिणाम की गणना कर सकते हैं।

एक तीसरा कारण पहले ही कहा जा चुका है, लेकिन मेरे पास एक छोटा विचलन है: आप एक विधि लिखते हैं जो कुछ काम करता है, मान लें कि यह 'अधिकतम' के एक रूप का मूल्यांकन करता है।

def max = {
  val result = somethingElseToDo
  if (foo) result else default 
}

परिणाम '' परिणाम '' को कॉल करने के बजाय, हम इसे '' अधिकतम '' कह सकते हैं, लेकिन कुछ भाषाओं में आप किसी विधि को कॉल करते समय कोष्ठक को छोड़ सकते हैं, इसलिए अधिकतम विधि के लिए एक पुनरावर्ती कॉल होगा।

सामान्य तौर पर, मैं एक नाम पसंद करूंगा जो बताता है कि परिणाम क्या है। लेकिन अगर वह नाम पहले से ही लिया गया है, हो सकता है कि एक से अधिक चर, जिम्मेदार या विधि हो, क्योंकि एक GUI- फ़ील्ड, एक स्ट्रिंग प्रतिनिधित्व, एक संख्यात्मक और एक डेटाबेस के लिए, एक दूसरे का उपयोग करके भ्रम की संभावना बढ़ जाती है। 3 से 7 लाइनों के छोटे तरीकों में, नाम के लिए '' परिणाम '' समस्या नहीं होनी चाहिए।


0

ऑब्जेक्ट पास्कल में यह एक विकल्प नहीं है। आपको Resultफ़ंक्शन के कोड में चर को कहीं न कहीं मान देना होगा ।

उदाहरण:

function AddIntegers( A,B: Integer): Integer;
begin
  Result := A + B; 
end; 

तो मेरे लिए बहुत स्वाभाविक है कि एक "परिणाम" (या "रेटोर्नो" हो, क्योंकि मैं वापसी के मूल्य को प्राप्त करने के लिए भाषा के आरक्षित शब्दों के साथ नाम संघर्ष से बचने के लिए पुर्तगाली में इसे वर्तनी देता हूं।

Couse की, अगर यह C- व्युत्पन्न भाषा में एक बहुत ही सरल अभिव्यक्ति है, तो मैं परिणाम चर घोषित करने के लिए परेशान नहीं करूँगा - सीधे अभिव्यक्ति को वापस करना।


0

इसका न केवल आप परिणाम को नाम देते हैं (मैं विशेष रूप से 'आर' हूं), लेकिन इसका उपयोग कैसे किया जाता है। उदाहरण के लिए, यदि आपके पास एक रिटर्न वैरिएबल है, तो प्रत्येक रिटर्न स्टेटमेंट को इसे वापस करना चाहिए। 'वापसी आर' नहीं है अंत में, लेकिन पूरे विधि / कार्य के दौरान 'रिटर्न m * x + b;' जैसी चीजों को छिड़कें। वापसी आर; "इसके बजाय।


-1

परिणाम ठीक है। मैं पहली नज़र में कोड को समझने में सक्षम हूं इसलिए चर नाम का उद्देश्य पूरा हुआ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.