Модул:array/doc
This is the documentation page for Модул:array
Созандаи массивро бармегардонад, ки ҷадвалеро тавлид мекунад, ки дорои як қатор функсияҳо ҳамчун усул дастрас аст: функсияҳои китобхонаи table ва функсияҳо ва функсияҳои гуногуни vanilla Lua аз Модул:table ва Модул:fun, ки дар массивҳо ё дар ҷадвалҳо бо калидҳои бутун амал мекунанд.
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"
Функсияҳои Module:table ва Module:fun дар ҳолати зарурӣ бор карда мешаванд.
Функсияҳо аз Module:table:
compressSparseArray(номи кӯтоҳшудаcompress),contains,invert,isArray,length,listToSet(номи кӯтоҳшудаtoSet),maxIndex,numKeys,removeDuplicates,reverse,reverseIpairs,serialCommaJoin,sparseIpairs
Функсияҳо аз Модул:fun. Инҳо ҳамчун далели дуюм функсия доранд (аргументи якуми усул):
all,filter,fold,map,some
Ин функсияҳо ба зерҷадвали funcs-и массив дохил карда шудаанд (ногувор):
affixNums,keysToList,numKeys
Функсияҳои зерин массивро бармегардонанд (бо метаболи массив):
affixNums,compressSparseArray,keysToList,numKeys,removeDuplicates,reverse
Номҳоеро, ки ба ҷои қуттии шутур доранд, метавонанд ҳамчун тахаллус истифода кунанд: масалан, ба ҷои arr:toSet() arr:to_set().
Созандаи массив вобаста ба аргументҳои ба он додашуда дигар хел рафтор мекунад. Бе далелҳо он ҷадвали холӣ месозад. Бо назардошти як ҷадвал, он ба он метаҷабли илова мекунад. Агар ҷадвал бо mw.loadData бор карда шуда бошад, он ҷадвалро такрор мекунад ва метаҷадвалеро, ки дар ҷадвалҳои боркардаи mw.loadData мавҷуд аст, хориҷ мекунад. Дар акси ҳол, он ҷадвали (массиви) наверо эҷод мекунад, ки дорои аргументҳо мебошад.
Созандаи массив ин корро тавассути илова кардани метатаблиғ анҷом медиҳад. Ин ба он монанд аст, ки чӣ гуна ҳамаи сатрҳо дорои метаҷадвал мебошанд, ки имкон медиҳад функсияҳои китобхонаи string ҳамчун усул истифода шаванд: масалан, ("abc"):sub(1, 1) барои string.sub("abc", 1, 1).