Lua डेटा प्रकारों का अवलोकन
nil, boolean, number, string, table, function और userdata प्रकारों का अन्वेषण कीजिए
Lua डेटा प्रकारों का अवलोकन, CoddyKit पर Lua Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Lua Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Lua में आपका स्वागत है
Lua एक हल्की, तेज़ और एम्बेड की जा सकने वाली स्क्रिप्टिंग भाषा है, जिसका उपयोग गेम इंजन, वेब सर्वर और एम्बेडेड सिस्टम में किया जाता है। वास्तविक प्रोग्राम लिखने से पहले, आपको यह समझना आवश्यक है कि Lua डेटा को किस प्रकार निरूपित करता है।
Lua में 8 मूल प्रकार हैं: nil, boolean, number, string, table, function, userdata और thread। Lua में प्रत्येक मान इनमें से ठीक एक प्रकार का होता है।
-- Check the type of any value with type()
print(type(42)) -- number
print(type("hello")) -- string
print(type(true)) -- boolean
print(type(nil)) -- nilnil: मान का अभाव
nil Lua में कुछ भी नहीं या कोई मान नहीं दर्शाने का तरीका है। यह अपने प्रकार का एकमात्र मान है। जिन चर को कभी कोई मान नहीं दिया गया हो, उनमें अपने-आप nil होता है।
किसी वैश्विक चर को nil देना प्रभावी रूप से उसे हटा देता है। तालिकाओं में किसी कुंजी को nil पर सेट करने से वह प्रविष्टि पूरी तरह हट जाती है।
-- Unassigned variables are nil
print(x) -- nil
x = 10
print(x) -- 10
x = nil
print(x) -- nil (variable is gone)boolean: true और false
boolean प्रकार के ठीक दो मान होते हैं: true और false। Lua के सत्यता-नियम सरल, लेकिन महत्वपूर्ण हैं: केवल nil और false असत्य माने जाते हैं। संख्या 0 और रिक्त स्ट्रिंग "" सहित बाकी सभी मान सत्य माने जाते हैं।
यह कई अन्य भाषाओं से अलग है, जहाँ 0 या "" को असत्य माना जाता है।
-- Lua truthiness examples
if 0 then print("0 is truthy!") end -- prints!
if "" then print("empty str is truthy!") end -- prints!
if nil then print("nil") else print("nil is falsy") end
if false then print("false") else print("false is falsy") endnumber: पूर्णांक और दशमलव
Lua 5.3+ में number के दो उपप्रकार होते हैं: integer और float। पूर्णांक सटीक 64-बिट मान होते हैं; दशमलव IEEE 754 डबल-प्रिसीजन मान होते हैं। Lua 5.1/5.2 में सभी संख्याएँ डबल होती हैं।
math.type() फ़ंक्शन इन दोनों उपप्रकारों में अंतर बताता है। / से किया गया भाग हमेशा दशमलव लौटाता है; // (फ़्लोर भाग) तब पूर्णांक लौटाता है, जब दोनों संक्रियक पूर्णांक हों।
print(type(10)) -- number
print(type(10.5)) -- number
print(math.type(10)) -- integer
print(math.type(10.5))-- float
print(10 / 3) -- 3.3333...
print(10 // 3) -- 3 (floor division)string: Lua में पाठ
Lua में स्ट्रिंग बाइटों के अपरिवर्तनीय अनुक्रम होते हैं। आप उन्हें एकल उद्धरण, दोहरे उद्धरण या बहु-पंक्ति स्ट्रिंग के लिए लंबे कोष्ठक [[...]] से सीमित कर सकते हैं। लंबे कोष्ठक वाली स्ट्रिंग पहली नई पंक्ति को अनदेखा करती हैं और बाकी सब कुछ उसी रूप में सुरक्षित रखती हैं।
Lua की स्ट्रिंगें इंटरन की गई होती हैं, इसलिए समान स्ट्रिंगें एक ही मेमोरी साझा करती हैं। लंबाई ऑपरेटर # बाइटों की संख्या लौटाता है।
local s1 = 'single quotes'
local s2 = "double quotes"
local s3 = [[multi-line
long string]]
print(#s1) -- 13
print(type(s1)) -- string
print(s1 .. " works") -- concatenation with ..table: सार्वभौमिक कंटेनर
table प्रकार Lua की एकमात्र संयुक्त डेटा संरचना है, फिर भी यह इतनी शक्तिशाली है कि इससे ऐरे, शब्दकोश, ऑब्जेक्ट, सेट और बहुत कुछ बनाया जा सकता है। तालिकाएँ साहचर्य ऐरे होती हैं: वे कुंजियों को मानों से जोड़ती हैं, जहाँ कुंजी कोई भी गैर-nil, गैर-NaN मान हो सकती है।
तालिकाएँ घुंघराले कोष्ठकों {} से बनाई जाती हैं। ऐरे-शैली की तालिकाएँ 1 से शुरू होने वाली पूर्णांक कुंजियों का उपयोग करती हैं।
-- Array style
local fruits = {"apple", "banana", "cherry"}
print(fruits[1]) -- apple (1-indexed!)
-- Dictionary style
local person = {name = "Alice", age = 30}
print(person.name) -- Alice
print(person["age"]) -- 30function: प्रथम-श्रेणी के मान
Lua में फ़ंक्शन function प्रकार के प्रथम-श्रेणी के मान होते हैं। इन्हें चर में संग्रहीत किया जा सकता है, तर्क के रूप में भेजा जा सकता है और अन्य फ़ंक्शन से लौटाया जा सकता है। इसी कारण Lua कार्यात्मक प्रोग्रामिंग की शैलियों के लिए स्वाभाविक रूप से उपयुक्त है।
आप function कीवर्ड का उपयोग करके फ़ंक्शन परिभाषित कर सकते हैं या अनाम फ़ंक्शन को चर में निर्दिष्ट कर सकते हैं। दोनों रूप समान हैं।
-- Two equivalent ways to define a function
function greet(name)
return "Hello, " .. name
end
local greet2 = function(name)
return "Hello, " .. name
end
print(type(greet)) -- function
print(greet("Lua")) -- Hello, Luauserdata और thread
userdata होस्ट अनुप्रयोग द्वारा प्रबंधित मनमाने C डेटा को दर्शाता है। आप शुद्ध Lua में userdata नहीं बना सकते — यह C एक्सटेंशन या गेम इंजन जैसे एम्बेडिंग परिवेशों से आता है। इससे C कोड अपने ऑब्जेक्ट Lua स्क्रिप्ट के लिए उपलब्ध करा सकता है।
thread कॉरूटीन को दर्शाता है — अपने-अपने स्टैक वाले स्वतंत्र निष्पादन-धागे। हम कॉरूटीन का अध्ययन एक समर्पित पाठ में करेंगे। अभी इतना जान लें कि coroutine.create() thread प्रकार का मान लौटाता है।
-- thread type via coroutine
local co = coroutine.create(function()
print("coroutine body")
end)
print(type(co)) -- thread
-- userdata comes from C, not creatable in pure Lua
-- type(io.stdin) == "file" is a userdata variantमानों की जाँच के लिए type() का उपयोग
अंतर्निहित type() फ़ंक्शन हमेशा अपने तर्क के प्रकार का नाम बताने वाली स्ट्रिंग लौटाता है। यह रक्षात्मक प्रोग्रामिंग और डीबगिंग के लिए उपयोगी है। आप परिणाम की सीधे प्रकार-नाम वाली स्ट्रिंग से तुलना कर सकते हैं।
ध्यान दें कि type(nil) स्ट्रिंग "nil" लौटाता है, स्वयं मान nil नहीं। इससे आप बिना त्रुटि के सुरक्षित रूप से जाँच सकते हैं कि किसी चर में nil है या नहीं।
local values = {42, "hi", true, nil, {}, function() end}
-- Note: nil in table stops ipairs early
for i = 1, 3 do
print(i, type(values[i]))
end
-- 1 number
-- 2 string
-- 3 booleanअन्य भाषाओं से प्रकारों के अंतर
यदि आपने JavaScript, Python या Java का उपयोग किया है, तो Lua के कुछ प्रकार-संबंधी नियम आपको चौंका सकते हैं। type() में दिखने वाला कोई अलग पूर्णांक प्रकार नहीं है — पूर्णांक और दशमलव दोनों "number" लौटाते हैं। ऐरे का अपना अलग प्रकार नहीं होता — वे केवल तालिकाएँ हैं। वर्ग मौजूद नहीं होते — ऑब्जेक्ट मेटाटेबल वाली तालिकाएँ होते हैं।
इन अंतरों को समझने से भाषाओं के बीच जाते समय होने वाली सामान्य त्रुटियों से बचा जा सकता है।
-- No separate array type
local arr = {1, 2, 3}
print(type(arr)) -- table (not array!)
-- No separate integer type visible
print(type(1)) -- number
print(type(1.0)) -- number
-- math.type distinguishes
print(math.type(1)) -- integer
print(math.type(1.0)) -- floatत्वरित जाँच
Lua में type(0) क्या लौटाता है?
पुनरावलोकन: Lua के डेटा प्रकारों का अवलोकन
आपने Lua के सभी 8 प्रकार सीख लिए हैं:
- nil — मान का अभाव; असत्य
- boolean — true/false; केवल nil और false असत्य होते हैं
- number — पूर्णांक या दशमलव; अंतर बताने के लिए math.type() का उपयोग करें
- string — अपरिवर्तनीय बाइट अनुक्रम; जोड़ने के लिए .. का उपयोग करें
- table — ऐरे और शब्दकोशों के लिए सार्वभौमिक कंटेनर
- function — प्रथम-श्रेणी के मान, जिन्हें चर में संग्रहीत किया जा सकता है
- userdata — Lua के लिए उपलब्ध कराया गया C डेटा
- thread — कॉरूटीन हैंडल
अगला विषय: चर घोषित करना — वैश्विक बनाम स्थानीय दायरा।
एआई शिक्षक के साथ Lua सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 40
- पाठ
- 159
अक्सर पूछे जाने वाले प्रश्न
क्या “Lua डेटा प्रकारों का अवलोकन” पाठ निःशुल्क है?
हाँ — Lua Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Lua डेटा प्रकारों का अवलोकन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Lua डेटा प्रकारों का अवलोकन” में मैं क्या सीखूँगा?
nil, boolean, number, string, table, function और userdata प्रकारों का अन्वेषण कीजिए आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Lua Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Lua Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Lua Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Lua डेटा प्रकारों का अवलोकन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Lua Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Lua Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Lua डेटा प्रकारों का अवलोकन
- Lua में चर घोषित करना
- अंकगणितीय और संबंधपरक ऑपरेटर
- प्रकार का बलपूर्वक परिवर्तन और रूपांतरण