Lua - 陣列迭代



在 Lua 中,我們可以使用 `pairs()` 和 `ipairs()` 函式迭代陣列。這兩個函式都返回鍵值對,其中鍵是元素的索引,值是陣列中該索引處儲存的元素。

語法

for key,value in ipairs(array) do print(key,value) end
for key,value in pairs(array) do print(key,value) end
  • - 索引

  • - 儲存在陣列相應索引中的值

  • 陣列 - 陣列

示例 - 使用 `pairs()` 方法

建立一個名為 main.lua 的新原始檔,並將以下程式碼貼上到其中以使用 `pairs()` 方法迭代陣列。

main.lua

array = {"a", "b", "c", "d", "e", "f"}

array["last"] = "end"
for key,value in pairs(array) 
do 
   print(key,value) 
end

輸出

1	a
2	b
3	c
4	d
5	e
6	f
last	end

示例 - 使用 `ipairs()` 方法

建立一個名為 main.lua 的新原始檔,並將以下程式碼貼上到其中以使用 `ipairs()` 方法迭代陣列。

main.lua

array = {"a", "b", "c", "d", "e", "f"}

array["last"] = "end"
for key,value in ipairs(array) 
do 
   print(key,value) 
end

輸出

1	a
2	b
3	c
4	d
5	e
6	f

您可以注意到,如果索引是非數字,則 `ipairs` 會拒絕該條目。

示例 - 使用自定義迭代器

我們可以建立自己的迭代器來迭代陣列。考慮以下返回迭代器的函式。

function getValues(array)
  local i = 0
  return function() i = i + 1; return array[i] end
end

我們可以在 `for` 迴圈中使用此函式,如下所示。

for value in getValues(array) 
do 
   print(value)
end

以下是完整的程式碼。

main.lua

function getValues(array)
  local i = 0
  return function() i = i + 1; return array[i] end
end

array = {"a", "b", "c", "d", "e", "f"}

for value in getValues(array) 
do 
   print(value) 
end

輸出

a
b
c
d
e
f
廣告
© . All rights reserved.