Мазмунга өтүү

Модуль:array/doc

Wiktionary долбоорунан

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 (alias compress), contains, invert, isArray, length, listToSet (alias toSet), 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) үчүн.