1.4d — Keywords और naming identifiers


1.4d — Keywords और naming identifiers
Keywords
C++ अपने use के लिए 73 words (शब्द) सुरक्षित रखता है । इन शब्दों कोkeywords कहा जाता है, और इनमे से हर एक keyword का C++ में एक ख़ास मतलब है ।
यहाँ C++ के सारे keywords के list दिए गये हैं (C++11 के अनुसार):
alignas **
alignof **
asm
auto
bool *
break
case
catch
char
char16_t **
char32_t **
class
const
constexpr **
const_cast *
continue
decltype
default
delete
do
double
dynamic_cast *
else
enum
explicit *
export *
extern
false *
float
for
friend
goto
if
inline
int
long
mutable *
namespace *
new
noexcept **
nullptr **
operator
private
protected
public
register
reinterpret_cast *
return
short
signed
sizeof
static
static_assert **
static_cast *
struct
switch
template
this
thread_local **
throw
true *
try
typedef
typeid *
typename *
union
unsigned
using *
virtual
void
volatile
wchar_t *
while
* से mark किये गये 15 keywords C++98 में जोड़े गये थे । कुछ पुराने किताबों में आपको ये नहीं भी दिखाई दे सकते हैं ।
**
से mark किये गये 9 keywords C++11 में जोड़े गये थे । यदि आपका compiler C++11 को support नहीं करता, तो संभवतः ये आपके compiler में काम नहीं करेंगे ।
आपने पहले ही इनमे से कुछ keywords का इस्तेमाल किया है, जैसे की intvoidreturnusing, और namespace । यदि कुछ operators को मिला लिया जाये, तो ये keywords पूरे C++ language को define करते हैं (preprocessor commands को छोड़कर) । क्यूंकि इन keywords का language में कोई ख़ास मतलब है, आपका IDE इन्हें दिखाते वक़्त इनका colour बदल देगा (ज्यादातर नीले रंग में) ताकि coding करते वक़्त ये आसानी से पहचाने जा सके ।
इन tutorials को ख़त्म करने तक आप लगभग हर keyword का काम समझ जाओगे ।
Identifiers और उनका नाम रखना
Variable, function, class या C++ के दुसरे objects के नाम को identifier कहा जाता है । C++ आपको आपके इच्छानुसार identifiers के नाम रखने की छुट देता है, लेकिन इसमें कुछ नियम हैं:
  • Identifiers keywords नहीं होने चाहिए क्यूंकि Keywords का language में कोई ख़ास मतलब है । आप इसका प्रयोग अपने variables या functions के लिए नहीं कर सकते ।
  • Identifier केवल letters(uppercase या lowercase), numbers, और underscore character के बने होने चाहिए । इसका मतलब है objects के नाम में आप symbols (underscore को छोड़कर) और whitespaces का इस्तेमाल नहीं कर सकते ।
  • Identifiers के नाम किसी letter (lower या upper case) या underscore से शुरू होने चाहिए । इनका पहला character कोई number नही हो सकता ।
  • C++, lowercase (जैसे a) और uppercase (जैसे A) letters में अंतर करता है । nvaluenValue और NVALUE तीन अलग-अलग identifiers हैं ।
अब जब हमें पता चल चूका है की हम अपने objects को कैसे नाम दे सकते हैं, आइये देखते हैं की objects को कैसे नाम दिया जाना चाहिए 
पहला, C++ में ये माना जाता है की variables के नाम का शुरुआती अक्षर lowercase (जैसे a) में रहना चाहिए । यदि variable के नाम केवल एक शब्द के हैं, तो पूरा नाम lowercase letters में लिखा जाना चाहिए ।
1
2
3
4
5
int value; // ठीक है

int Value; // ठीक नहीं है (शुरुआती अक्षर lowercase में हो तो ज्यादा बेहतर है)
int VALUE; // ठीक नहीं है (शुरुआती अक्षर lowercase में हो तो ज्यादा बेहतर है)
int VaLuE; // ठीक नहीं है (पहले ही बता दिया जा चूका है) ;)
सामान्यतः, functions के नाम भी lowercase letter से ही शुरू होते हैं (लेकिन कुछ लोग इस नियम को नहीं मानते) । हम tutorial के दौरान अपने functions के नाम lowercase letter से शुरू करेंगे क्यूंकि main() (जो हर C++ program में होना ही चाहिए) lower case letter से ही शुरू होता है, और साथ ही standard template library में function के नाम भी इसी तरह से लिखे गए हैं ।
Identifier names के लिए capital letters (बड़े अक्षर जैसे A) का प्रयोग, classes और enumerations (जिनके बारे हम आगे के chapters में जानेंगे) के लिए किया जाता है ।
यदि variable या function के नाम एक से अधिक शब्दों से बने हैं, तो इस परिस्थिति में नाम रखने के दो तरीके सही माने जाते हैं: शब्दों को underscores से अलग करना, या intercapped (छोटे और बड़े अक्षरों को मिलाकर इस्तेमाल करना जैसे की myVar) style का प्रयोग करना ।
1
2
3
4
5
int my_variable_name; // ठीक है (underscores से अलग किये गए हैं)
int myVariableName; // सही है (intercapped style का इस्तेमाल किया गया है)

int my variable name; // गलत है (नाम में spaces नहीं होने चाहिए)
int MyVariableName; // ठीक नही है (lower case letter से शुरू हो तो ज्यादा बेहतर है)
इस tutorial में, हम intercapped style का प्रयोग करेंगे क्यूंकि ये पढने में ज्यादा आसान होते हैं (जहाँ बहुत ज्यादा code लिखा गया हो, spaces के लिए underscore का प्रयोग करना identifiers को पढने में ज्यादा मुश्किल बना सकता है) । लेकिन आपको underscore style बहुत जगह देखने को मिलेगा क्यूंकि C++ standard library, variables और functions, दोनों के लिए underscore method का प्रयोग करता है । कही-कही पे underscores का उपयोग variables के लिए और intercapped style का उपयोग functions के लिए एक साथ किया जाता है ।
दूसरा, आपको identifiers के नाम के शुरू में underscore का प्रयोग नहीं करना चाहिए, क्यूंकि ऐसे नामों का प्रयोग आम तौर पर OS, library, और compiler करते हैं ।
तीसरा, और शायद इनमें से सबसे ज्यादा ज़रूरी नियम, identifiers को कुछ ऐसा नाम दे जिससे साफ़ हो की उस नाम का object किसलिए लिए प्रयोग होने वाला है । नए programmers अकसर अपना समय बचाने के लिए छोटे नामों का प्रयोग करते हैं । ये तरीका हमेशा ही गलत है । Variables के नाम कुछ ऐसे होने चाहिए जिससे पूरी तरह साफ़ हो सके की उस नाम के variable का program में क्या महत्व है । 3 महीने बाद, जब आप अपने program को फिर से देखोगे, हो सकता है की आप भूल चुके हों की ये कैसे काम करता है, और उस वक़्त आप variables को सही नाम देने के लिए अपने आप का धन्यवाद करोगे । Variables जितने जटिल code में प्रयोग किये जाने है, इनके नाम उतने ही अच्छे होने चाहिए ।
int ccount
बुरा है
किसी को नहीं पता ccount क्या है
int customerCount
अच्छा है
साफ़ है की हम customers को count कर रहे हैं
int i
बुरा है*
सामान्यतः बुरा है यदि किसी छोटे variable, जैसे loop variables के रूप में इस्तेमाल नहीं किया जा रहा है तो
int index
अच्छा-बुरा दोनों हो सकता है
ठीक है यदि हमे पता है की हम किसे index (सूची) कर रहे हैं
int totalScore
अच्छा है
बिलकुल साफ़ है
int _count
बुरा है
Variable names की शुरुआत underscore से करना गलत है
int count
अच्छा-बुरा दोनों हो सकता है
ठीक है यदि हमे पता है की हम किसे count कर रहे हैं
int data
बुरा है
किस तरह का data, ये स्पष्ट नहीं है?
int value1, value2
अच्छा-बुरा दोनों हो सकता है
दोनों के बीच अंतर करना मुश्किल हो सकता है
int numberOfApples
अच्छा है
बिलकुल साफ़ है
int monstersKilled
अच्छा है
बिलकुल साफ़ है
int x, y
बुरा है*
साधारणतः बुरा है यदि इनका उपयोग छोटा नहीं है तो, छोटा उपयोग जैसे की छोटे-मोटे गणितीय functions
* Note: जिन variables का code में महत्व कम हो, उनके लिए छोटे नामों का प्रयोग करना ठीक है, जैसे की loop variables या छोटे-मोटे गणितीय functions के लिए छोटे नामों का प्रयोग कारण ठीक है ।
चौंथा, कहीं-कहीं पे चीजों को स्पष्ट करने के लिए comments का उपयोग बेहतर साबित होंगे । उदाहरण के लिए, मान लीजिये हमने numberOfChars नाम का एक variable declare किया है जो text के किसी टुकड़े (words, articles आदि) में कुल characters की संख्या को store करेगा । अब ज़रा बताइए “Hello World!” में 10, 11, या 12 characters हैं? ये निर्भर करेगा की आप counting करते वक़्त spaces और punctuation (एक तरह के symbols जिनका प्रयोग codes को समझने में आसान बनाने के लिए किया जाता है, जैसे #) का प्रयोग कर रहे हैं या नही । इस परिस्थिति में variable को लम्बा नाम जैसे numberOfCharsIncludingWhitespaceAndPunctuation देने से बेहतर, declaration line पर एक अच्छा comment लिखा जा सकता है, जो चीजों को समझने में भी आसान बनाएगा:
1
2
// text के किसी टुकड़े में उपस्थित कुल chahracters की संख्या store करेगा -- whitespaces और punctuation को मिलाकर!
int numberOfChars;
Quiz
उन नामों को चुने जो identifier के रूप में इस्तेमाल किये जाने के लिए अच्छे नहीं माने जाते हैं (अर्थात जिस तरह से नाम दिए जाने चाहिए, उससे अलग लगते हैं) और ये भी बताइए की ये अच्छे क्यों नहीं माने जा सकते ।
1) int sum;
2) int _apples;
3) int VALUE;
4) int my variable name;
5) int TotalCustomers;
6) int void;
7) int nAngle;
8) int 3some;
9) int meters_of_pipe;

No comments:

Post a Comment

Pages