जबकि मुझे एहसास है कि प्रत्येक भाषा में इंडेंटेशन के लिए अपना स्वयं का सम्मेलन है, मैं मदद नहीं कर सकता लेकिन हाल ही में मैंने जो कुछ खोजा है उससे नाराज हो सकता हूं। PHP कोड से इस कोड पर विचार करें:PHP बनाम जावास्क्रिप्ट स्विच इंडेंटेशन
switch ($i) {
case "apple":
echo "i is apple";
break;
case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
}
ध्यान दें कि प्रत्येक मामले स्विच स्टेटमेंट से इंडेंट किया गया है। यह समझ में आता है, क्योंकि कोड को पढ़ने में आसान होता है और ब्लॉक के शरीर में इसके अंदर एक स्तर होता है।
हालांकि, जब मैं JSLint में बराबर जावास्क्रिप्ट स्विच बयान का परीक्षण:
switch (i) {
case "apple":
alert("i is apple");
break;
case "bar":
alert("i is bar");
break;
case "cake":
alert("i is cake");
break;
}
... यह मुझे बता एक त्रुटि प्रदर्शित करता है कि यह इस के बजाय तरह दिखाई देना चाहिए:
switch (i) {
case "apple":
alert("i is apple");
break;
case "bar":
alert("i is bar");
break;
case "cake":
alert("i is cake");
break;
}
ऐसा लगता है counterintuitive, क्योंकि प्रत्येक मामले अब स्विच ब्लॉक के साथ इनलाइन है। मैं किसी भी कारण की कल्पना नहीं कर सकता कि इसे बेहतर क्यों माना जाएगा, बहुत कम त्रुटि उत्पन्न होती है।
क्या JSLint गलती में है, या यह सिर्फ सम्मेलन के बाद है? यदि उत्तरार्द्ध सत्य है, तो सम्मेलन स्पष्टता के लिए क्यों नहीं होगा?
जेएसलिंट वास्तव में इस तरह की चीजों के बारे में शिकायत करता है? * -dies- * – BoltClock
जेएस और पीएचपी पायथन नहीं हैं, जो इंडेंट आपको पसंद है उसका उपयोग करें। – Shikiryu
मैं 'if ([" सेब "," बार "," केक "] का उपयोग करूंगा। IndexOf (i)! = -1) चेतावनी (" मैं एक "+ i);';) – Gumbo