Module:array/documentation
Nagbabalik ng array constructor na gumagawa ng table na may ilang punsyong na available bilang mga pamamaraan: ang table punsyon ng librerya, at iba't ibang funsyon at punsyon ng vanilla Lua mula sa Module:table at Module:fun na gumagana sa mga array o sa mga lamesa na may mga integer na susi.
local Array = require("Module:array")
local nums = Array() -- or Array:new()
nums:type() --> "array"
for i = 1, 5 do
nums:insert(i)
end
nums:concat(", ") --> "1, 2, 3, 4, 5"
local squares = nums:map(function (num) return num ^ 2 end) -- Returns new array.
squares:concat(', ') --> "1, 4, 9, 16, 25"
local even_squares = squares:filter(function (square) return square % 2 == 0 end)
even_squares:concat(", ") --> "4, 16"
Ang mga punsyon mula sa Module:table at Module:fun ay nilo-load kung kinakailangan.
Mga punsyon mula sa Module:table:
compressSparseArray(aliascompress),contains,invert,isArray,length,listToSet(aliastoSet),maxIndex,numKeys,removeDuplicates,reverse,reverseIpairs,serialCommaJoin,sparseIpairs
Mga punsyon mula sa Module:fun. Ang mga ito ay may function bilang pangalawang argumento (unang argumento ng pamamaraan):
all,filter,fold,map,some
Ang mga punsyon na ito ay kasama sa isang funcs subtable ng isang array (awkward):
keysToList,numKeys
Ang mga sumusunod na function ay nagbabalik ng array (na may array metatable):
compressSparseArray,keysToList,numKeys,removeDuplicates,reverse
Ang mga pangalan na may mga salungguhitan sa halip na kaso ng kamelyo ay maaaring gamitin bilang mga alias: halimbawa, arr:to_set() sa halip na arr:toSet().
Ang array constructor ay kumikilos nang iba depende sa mga argumentong ibinigay dito. Nang walang mga argumento, lumilikha ito ng isang walang laman na talahanayan. Dahil sa isang talahanayan, idinaragdag nito ang metatable dito. Kung na-load ang talahanayan ng mw.loadData, kino-duplicate nito ang talahanayan, na inaalis ang metatable na makikita sa mga talahanayan na ni-load ng mw.loadData. Kung hindi, lumilikha ito ng bagong talahanayan (array) na naglalaman ng mga argumento.
Ginagawa ito ng array constructor sa pamamagitan ng pagdaragdag ng metatable. Ito ay katulad ng kung paano ang lahat ng mga string ay may metatable na nagbibigay-daan sa string function ng library na magamit bilang mga pamamaraan: halimbawa, ("abc"):sub(1, 1) para sa string.sub("abc", 1, 1).