"शाब्दिक" शब्द का क्या अर्थ है जब शाब्दिक तार और शाब्दिक मूल्यों जैसे संदर्भ में उपयोग किया जाता है।
शाब्दिक मूल्य और मूल्य के बीच अंतर क्या है?
जवाबों:
एक शाब्दिक है " स्रोत कोड के भीतर एक मूल्य का प्रतिनिधित्व करने के लिए कोई संकेतन " ( विकिपीडिया )
( पहचानकर्ताओं के साथ इसका विरोध करें , जो स्मृति में एक मूल्य का उल्लेख करते हैं।)
उदाहरण:
"hey"
(एक स्ट्रिंग)false
(एक बूलियन)3.14
(एक वास्तविक संख्या)[1,2,3]
(संख्याओं की सूची)(x) => x*x
(एक समारोह)/^1?$|^(11+?)\1+$/
(एक regexp)कुछ चीजें जो शाब्दिक नहीं हैं:
std::cout
(एक पहचानकर्ता)foo = 0;
(एक बयान)1+2
(एक अभिव्यक्ति)15
शाब्दिक अर्थ है पंद्रह बनाम +
जिसका "दो चीजों को एक साथ जोड़ने" का विशेष अर्थ है। जब आप +
शाब्दिक नहीं हैं तो आप स्वयं प्लस चिह्न का प्रतिनिधित्व नहीं करेंगे।
एक शाब्दिक एक मूल्य है जिसे आपके स्रोत में सीधे हार्ड-कोडित किया गया है।
उदाहरण के लिए:
string x = "This is a literal";
int y = 2; // so is 2, but not y
int z = y + 4; // y and z are not literals, but 4 is
int a = 1 + 2; // 1 + 2 is not a literal (it is an expression), but 1 and 2 considered separately are literals
कुछ शाब्दिक में एक विशेष वाक्यविन्यास हो सकता है, इसलिए आप जानते हैं कि शाब्दिक क्या है:
//The 'M' in 10000000M means this is a decimal value, rather than int or double.
var accountBalance = 10000000M;
उन्हें चर या संसाधनों के अलावा जो सेट करता है वह यह है कि कंपाइलर उन्हें स्थिरांक के रूप में मान सकता है या कोड के साथ कुछ अनुकूलन कर सकता है जहां उनका उपयोग किया जाता है, क्योंकि यह निश्चित है कि वे नहीं बदलेंगे।
एक शाब्दिक एक स्पष्ट मूल्य के लिए एक असाइनमेंट है, जैसे कि
int i = 4; // i is assigned the literal value of '4'
int j = i // j is assigned the value of i. Since i is a variable,
//it can change and is not a 'literal'
संपादित करें: जैसा कि बताया गया है, असाइनमेंट का स्वयं शाब्दिक परिभाषा से कोई लेना-देना नहीं है, मैं अपने उदाहरण में असाइनमेंट का उपयोग कर रहा था, लेकिन एक शाब्दिक भी एक विधि में पारित किया जा सकता है, आदि।
एक शाब्दिक है जब आप स्रोत कोड में मूल्य शामिल करते हैं (जैसा कि एक चर या एक स्थिर का संदर्भ देने के विपरीत)। उदाहरण के लिए:
int result = a + 5; // a is a variable with a value, 5 is a literal
string name = "Jeff Atwood"; // name is a variable initialized
// with the string literal, "Jeff Atwood"
int[] array = new int[] {1, 2, 3}; // C# has array literals (this is actually three
// int literals within an array literal)
अगर शाब्दिक कुछ मात्रा का प्रतिनिधित्व करता है, एक भौतिक स्थिरांक की तरह, तो बेहतर है कि आप हर जगह एक ही शाब्दिक लिखने के बजाय इसे एक नाम दें। इस तरह, जब आप स्रोत कोड पढ़ रहे होते हैं, तो आप जानते हैं कि संख्या का मतलब क्या होता है , जो आमतौर पर इसके मूल्य से अधिक महत्वपूर्ण होता है (जो बदलावों को बदल सकता है)।
const int maxUsers = 100;
const double gravitationalAcceleration = 9.8;
आम तौर पर, केवल एक ही संख्यात्मक शाब्दिक मैं उपयोग करता हूं (इसके अलावा ऊपर की तरह स्थिरांक को इनिशियलाइज़ करने के लिए) 0 या 1 हैं, और कभी-कभी 2 अगर मैं हर दूसरे आइटम को लूप में छोड़ रहा हूं। यदि संख्या का अर्थ इसके वास्तविक मूल्य (यह आमतौर पर है) से अधिक महत्वपूर्ण है , तो इसका नाम बेहतर है।
एक शाब्दिक मूल्य एक मूल्य है, लेकिन एक मूल्य को एक चर में भी संग्रहीत किया जा सकता है। कथन में
string str = "string literal";
एक स्ट्रिंग चर (str) और एक स्ट्रिंग शाब्दिक है। बयान निष्पादित होने के बाद दोनों का मूल्य समान है।
ध्यान रखें कि कई भाषाओं में चर और शाब्दिक मूल्य आवश्यक रूप से एक ही प्रकार के नहीं होते हैं। उदाहरण के लिए:
int a = 1.0;
ऊपर का शाब्दिक मूल्य एक फ्लोटिंग पॉइंट प्रकार है। मान को कंपाइलर द्वारा इंट चर में फिट करने के लिए बाध्य किया जाएगा।
एक अन्य उदाहरण के लिए, स्ट्रिंग स्ट्रिंग के प्रकार के ऊपर C ++ कोड की पहली पंक्ति में वास्तव में पुस्तकालय प्रकार नहीं है string
। सी के साथ पश्चगामी संगतता बनाए रखने के लिए, C ++ में स्ट्रिंग शाब्दिक चार सरणियाँ हैं।
आम तौर पर जब कोई शब्द शाब्दिक का उपयोग करता है, तो उनका मतलब है कि मूल्य कोड (पाठ) से व्याख्या योग्य है जैसा कि अन्य पदों में कई उदाहरणों में दिखाया गया है।
एक और आम उपयोग उन मूल्यों के लिए है जो विधानसभा में तत्काल मूल्यों में परिवर्तित हो जाते हैं। ये ऐसे मान हैं जो सीधे मशीन अनुदेश में डाले जाते हैं बजाय रजिस्टर लोड की आवश्यकता के।
मैंने सुना है स्ट्रिंग शाब्दिकों का उपयोग सी # विनिर्देशन को वास्तव में वर्बटिम स्ट्रिंग शाब्दिक के रूप में संदर्भित करने के लिए किया जाता है। एक नियमित स्ट्रिंग शाब्दिक एक टैब के लिए कुछ वर्णों (जैसे उपसर्ग) से बचने की अनुमति देता है, जैसे \ t। एक शब्दशः स्ट्रिंग शाब्दिक @ द्वारा संसाधित किया जाता है और शब्दशः संसाधित किया जाता है, इसका कोई विशेष अर्थ नहीं है।
//regular
string regular = "\thello world";
//verbatim
string verbatim = @"C:\";
//the regular equivalent of this would be "C:\\"
कुछ प्रकारों में मूल्यों के लिए साहित्य शॉर्टहैंड नोटेशन है जिसे भाषा इतनी महत्वपूर्ण या मौलिक मानती है कि इसने उनके लिए सिंटेक्स शुगर समर्पित किया है।
उन प्रकारों का उदाहरण जिनके मूल्य अक्सर शाब्दिक रूप से दर्शाए जाते हैं:
Boolean = { true, false }
Integer = { ..., -2, -1, 0, 1, 2, ... }
Character = { 'a', 'b', ... }
String = { "hello", "world", ... }
कुछ भाषाओं में फ़ंक्शन प्रकारों के लिए भी शाब्दिक हैं:
Integer -> Integer = { (x: Integer) => x + 2), (x: Integer) => x/2, ...}
मूल्यों का एक उदाहरण जो आमतौर पर शाब्दिक के साथ प्रतिनिधित्व नहीं किया जाता है वे वर्ग प्रकार के मूल्य होंगे:
Car(brand: String, seats: Integer) = { Car("BMW", 5), Car("Ferrari", 2), ...}
यहाँ प्रतीकों के अनुक्रम का उपयोग करके वास्तव Car("BMW", 5)
में प्रकार Car
को विशिष्ट रूप से निरूपित किया जाता है, हालांकि, एक समर्पित शॉर्टहैंड शाब्दिक का उपयोग करके मूल्य का प्रतिनिधित्व नहीं किया जाता है, लेकिन इसके बजाय किसी भी वर्ग के प्रकार के मूल्यों को निरूपित करने के लिए सामान्य (क्रिया) सामान्य तंत्र का उपयोग करता है।
शब्द का शाब्दिक अर्थ एक मूल्य , उदाहरण , स्थिर , सदस्य और एक प्रकार का तत्व है, लेकिन थोड़ा अतिरिक्त अर्थ है कि हमें बताता है कि इसे लिखने के लिए एक आशुलिपि है।
मैं एक अवधारणा को व्यक्त करने के लिए वर्णमाला के पात्रों को एक साथ पिरोने के विपरीत मिस्र के चित्रलिपि के रूप में शाब्दिक के बारे में सोचना पसंद करता हूं।