Модуль:array/doc
This is the documentation page for Модуль:array
Метод катары жеткиликтүү болгон бир катар функцияларга ээ таблицаны чыгарган массив конструкторун кайтарат: жадыбал table китепканасынын функциялары жана ар кандай ваниль Луа функциялары жана Module:table жана Module: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(aliascompress),contains,invert,isArray,length,listToSet(aliastoSet),maxIndex,numKeys,removeDuplicates,reverse,reverseIpairs,serialCommaJoin,sparseIpairs
Модулдан алынган Module:fun. Булар экинчи аргумент катары функцияга ээ (методдун биринчи аргументи):
all,filter,fold,map,some
Бул функциялар массивдин funcs кошумча таблицасына киргизилген (ыңгайсыз):
keysToList,numKeys
Төмөнкү функциялар массивди кайтарат (массив метатаблица менен):
compressSparseArray,keysToList,numKeys,removeDuplicates,reverse
Төө регистринин ордуна асты сызылган аттар лакап ат катары колдонулушу мүмкүн: мисалы, arr:to_set() instead of arr:toSet().
Массив конструктору ага берилген аргументтерге жараша өзүн башкача кылат. Аргументтерсиз, ал бош таблицаны түзөт. Жалгыз таблица берилгенде, ага метатаблица кошот. Эгер таблица mw.loadData менен жүктөлгөн болсо, ал mw.loadData жүктөлгөн таблицаларда табылган метатаблицаны алып салып, таблицаны кайталайт. Болбосо, ал аргументтерди камтыган жаңы таблицаны (массивди) түзөт.
Массив конструктору муну метатаблица кошуу менен кылат. Бул бардык саптардын string китепкана функцияларын методдор катары колдонууга мүмкүндүк берген метатаблицага ээ болгонуна окшош: мисалы, ("abc"):sub(1, 1) string.sub("abc", 1, 1) үчүн.