← Back to Lua Course | Chapter 4: Tables | Lesson 4 of 7

pairs और ipairs से Iteration

ipairs arrays को order में walk करता है, और pairs एक table में हर key visit करता है।

pairs और ipairs से Iterate करना

ipairs(t) keys 1, 2, 3 वगैरह पर iterate करता है और पहले nil पर रुक जाता है। pairs(t) हर key और value visit करता है, किसी guaranteed order में नहीं। Sequences के लिए ipairs और dictionaries के लिए pairs इस्तेमाल करें, और iterate करते वक्त एक table में नई keys add न करें।

Note: अगर आपको pairs से एक stable printing order चाहिए तो पहले keys sort करें।

उदाहरण: Iterating with pairs and ipairs

lua
local list = {"a", "b", nil, "d"}
for i, v in ipairs(list) do print(i, v) end

local ages = {ann = 30, bob = 25, cid = 41}
local keys = {}
for k in pairs(ages) do keys[#keys + 1] = k end
table.sort(keys)
for _, k in ipairs(keys) do print(k, ages[k]) end

-- Output:
-- 1	a
-- 2	b
-- ann	30
-- bob	25
-- cid	41
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. यह उम्मीद करना कि pairs insertion order में keys return करेगा
  2. holes वाली एक table पर ipairs इस्तेमाल करना और जल्दी रुक जाना
  3. एक pairs loop के अंदर नई keys add करना
चैप्टर सारांश
  • ipairs nil तक 1..n जाता है
  • pairs सारी keys visit करता है
  • pairs order defined नहीं है
  • iterate करते वक्त keys add न करें

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.