Lua Academy · पाठ

सामान्य for प्रोटोकॉल

तीन-मान वाले इटरेटर प्रोटोकॉल को समझें: इटरेटर फ़ंक्शन, स्थिति और नियंत्रण वेरिएबल।

पाठ 1, कुल 4 में से13 चरण

सामान्य for प्रोटोकॉल, CoddyKit पर Lua Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Lua Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Generic for कैसे काम करता है

for कथन प्रत्येक पुनरावृत्ति पर एक इटरेटर फ़ंक्शन को कॉल करता है। यह एक स्थिति और एक नियंत्रण चर भेजता है और फ़ंक्शन के nil लौटाने पर रुक जाता है।

तीन-मान वापसी

for var in iter, state, init do — Lua इसे इस प्रकार खोलता है: इटरेटर फ़ंक्शन iter, अपरिवर्तनीय स्थिति state, और प्रारंभिक नियंत्रण चर init।

ipairs प्रोटोकॉल

ipairs(t) एक स्थिति-रहित इटरेटर फ़ंक्शन, तालिका को स्थिति के रूप में और 0 को प्रारंभिक नियंत्रण चर के रूप में लौटाता है। प्रत्येक कॉल अगली अनुक्रमणिका और मान लौटाता है।

for i, v in ipairs({10, 20, 30}) do
  print(i, v)
end

कस्टम तीन-मान इटरेटर

तीनों मान स्पष्ट रूप से उपलब्ध कराकर कस्टम स्थिति-रहित इटरेटर लागू करें।

local function iter(t, i)
  i = i + 1
  local v = t[i]
  if v then return i, v end
end
for i, v in iter, {"a","b","c"}, 0 do
  print(i, v)
end

क्लोज़र से सरल बनाना

क्लोज़र-आधारित इटरेटर को केवल इटरेटर फ़ंक्शन लौटाना होता है (स्थिति या नियंत्रण चर की आवश्यकता नहीं—वे अपवैल्यू में रहते हैं)।

local function values(t)
  local i = 0
  return function()
    i = i + 1
    return t[i]
  end
end
for v in values({1,2,3}) do print(v) end

nil लूप समाप्त करता है

Generic for लूप तब तुरंत समाप्त हो जाता है, जब इटरेटर फ़ंक्शन पहले वापसी मान के रूप में nil लौटाता है। यही समाप्ति का अनुबंध है।

एकाधिक वापसी मान

इटरेटर कई मान लौटा सकता है; प्रत्येक मान एक लूप चर से जुड़ता है: for k, v in pairs(t)।

for k, v in pairs({x=1, y=2}) do
  print(k, v)
end

स्थिति पैरामीटर का उपयोग

स्थिति पैरामीटर प्रत्येक इटरेटर कॉल में बिना बदलाव के भेजा जाता है। स्थिति-रहित इटरेटर में इसमें आवश्यक पूरा संदर्भ होता है (जैसे, स्वयं तालिका)।

इटरेटर के रूप में Coroutine.wrap

coroutine.wrap(fn) ऐसा फ़ंक्शन लौटाता है जो प्रत्येक कॉल पर कोरूटीन को फिर से चलाता है; दिए गए मान वापसी मान बन जाते हैं—इसलिए यह Generic for इटरेटर के रूप में आदर्श है।

local function countdown(n)
  return coroutine.wrap(function()
    for i = n, 1, -1 do coroutine.yield(i) end
  end)
end
for v in countdown(5) do print(v) end

इटरेटर संयोजन

इटरेटरों को संयोजित किया जा सकता है: फ़िल्टर लगाने या रूपांतरण करने के लिए एक इटरेटर को दूसरे में लपेटें।

local function mapped(iter, fn)
  return function()
    local v = iter()
    if v ~= nil then return fn(v) end
  end
end

अनंत इटरेटर

nil कभी न लौटाने वाला इटरेटर अनंत लूप बनाता है। हमेशा समाप्ति की शर्त या break दें।

local function naturals()
  local n = 0
  return function() n = n+1; return n end
end
for v in naturals() do
  if v > 5 then break end
  print(v)
end

Generic for संबंधी प्रश्न

Generic for लूप कब रुकता है?

पुनरावृत्ति: Generic for प्रोटोकॉल

Generic for अपरिवर्तनीय स्थिति और नियंत्रण चर के साथ इटरेटर फ़ंक्शन को कॉल करता है। यह nil मिलने पर रुक जाता है। क्लोज़र स्थिति को अपवैल्यू में रखकर स्थिति-संपन्न इटरेटर को सरल बनाते हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Lua सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
40
पाठ
159

अक्सर पूछे जाने वाले प्रश्न

क्या “सामान्य for प्रोटोकॉल” पाठ निःशुल्क है?

हाँ — Lua Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “सामान्य for प्रोटोकॉल” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“सामान्य for प्रोटोकॉल” में मैं क्या सीखूँगा?

तीन-मान वाले इटरेटर प्रोटोकॉल को समझें: इटरेटर फ़ंक्शन, स्थिति और नियंत्रण वेरिएबल। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Lua Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Lua Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Lua Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“सामान्य for प्रोटोकॉल” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Lua Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Lua Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. सामान्य for प्रोटोकॉल
  2. स्टेटलेस इटरेटर
  3. क्लोज़र के साथ स्टेटफुल इटरेटर
  4. कोरूटीन-आधारित जनरेटर
← Lua Academy पर वापस जाएँ