मुहावरेदार कोड क्या है?


85

मुझे कुछ पहले और बाद के c # उदाहरणों में दिलचस्पी होगी, कुछ गैर-मुहावरेदार बनाम मुहावरेदार उदाहरणों में। गैर-सी # उदाहरण ठीक होगा यदि वे विचार प्राप्त करते हैं। धन्यवाद।


3
C # की हिडन विशेषताएं मुहावरेदार C # से भरी हुई हैं। यह सब आप के दिमाग में नहीं है, लेकिन बहुत से उच्च संख्या वाले सरल वन-लाइनर्स को मुहावरेदार माना जा सकता है। और कुछ जवाब गैर-मुहावरेदार विकल्प के रूप में अच्छी तरह से वर्णन करते हैं।
— मिकिएल वैन ओस्टरहॉट

जवाबों:


119

मुहावरे का अर्थ है भाषा की परंपराओं का पालन करना। आप एक अलग भाषा से अपने ज्ञान को चित्रित करने के बजाय किसी कार्य को पूरा करने के सबसे आसान और सबसे सामान्य तरीके ढूंढना चाहते हैं।

गैर-मुहावरेदार अजगर एपेंड के साथ एक लूप का उपयोग कर:

mylist = [1, 2, 3, 4]
newlist = []
for i in mylist:
    newlist.append(i * 2)

एक सूची समझ का उपयोग कर मुहावरेदार अजगर:

mylist = [1, 2, 3, 4]
newlist = [(i * 2) for i in mylist] 

36

कुछ उदाहरण:

संसाधन प्रबंधन , गैर मुहावरेदार:

string content;
StreamReader sr = null;
try {
    File.OpenText(path);
    content = sr.ReadToEnd();
}
finally {
    if (sr != null) {
        sr.Close();
    }
}

मुहावरेदार:

string content;
using (StreamReader sr = File.OpenText(path)) {
    content = sr.ReadToEnd();
}

गर्भाधान , गैर मुहावरेदार:

for (int i=0;i<list.Count; i++) {
   DoSomething(list[i]);
}

इसके अलावा गैर मुहावरेदार:

IEnumerator e = list.GetEnumerator();
do {
   DoSomenthing(e.Current);
} while (e.MoveNext());

मुहावरेदार:

foreach (Item item in list) {
   DoSomething(item);
}

फ़िल्टरिंग , गैर-मुहावरेदार:

List<int> list2 = new List<int>();
for (int num in list1) {
  if (num>100) list2.Add(num);
}

मुहावरेदार:

var list2 = list1.Where(num=>num>100);

13
ब्रेसिज़ मुहावरेदार जावा ;-)
— मैथ्यू गुइंडोन

15

मुहावरेदार कोड वह कोड होता है जो आपकी भाषा के लिए सामान्य तरीके से एक सामान्य कार्य करता है। यह एक डिज़ाइन पैटर्न के समान है, लेकिन बहुत छोटे पैमाने पर। मुहावरे भाषा के हिसाब से अलग-अलग होते हैं। C # में एक मुहावरा एक संग्रह के माध्यम से पुनरावृति करने के लिए एक पुनरावृत्ति का उपयोग करने के बजाय इसे लूप करने के लिए हो सकता है। पुनरावृत्तियों के बिना अन्य भाषाएँ लूप मुहावरे पर निर्भर हो सकती हैं।


6

PHP में मुझे कभी-कभी कोड पसंद आता है:

foreach ($array as $value) {
    $trimmed[] = trim($value);
}
return $trimmed;

किस मुहावरे के साथ लागू किया जा सकता है:

return array_map('trim', $array);

5

व्यावहारिक रूप से, इसका मतलब है कि एक सुसंगत तरीके से कोड लिखना, अर्थात आपके कोड आधार पर काम करने वाले सभी डेवलपर्स को समान कोड निर्माणों को लिखते समय समान सम्मेलनों का पालन करना चाहिए।

तो मुहावरेदार तरीका वह तरीका है जो अन्य कोड की शैली से मेल खाता है, गैर-मुहावरेदार तरीका है जिसका अर्थ है कि आप इस तरह का फ़ंक्शन लिख रहे हैं लेकिन एक अलग तरीके से।

उदाहरण के लिए यदि आप एक निश्चित संख्या में आइटम पा रहे हैं, तो आप कई तरीकों से लूप लिख सकते हैं:

for (int i = 0; i < itemCount; i++)

for (int i = 1; i <= itemCount; i++)

for (int i = 0; i < itemCount; ++i)

आदि

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

for (int i = 1; i < itemCount; i++)

2
मुझे लगता है कि मैंने सोचा था कि मुहावरे का अर्थ "सबसे अच्छा तरीका" है जो सिर्फ एक मनमाना मानक के विपरीत है। लेकिन मुझे लगता है कि एक सबसे अच्छा तरीका संदर्भ के अधीन है।
— MrBoJangles
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.