Модул:арраy/док
Ово је документациона подстраница за Модул:array
Ретурнс ан арраy цонструцтор тхат продуцес а табле тхат хас а нумбер оф фунцтионс аваилабле ас метходс: тхе table
либрарy фунцтионс, анд вариоус ванилла Луа фунцтионс анд фунцтионс фром Модуле:табле анд Модуле:фун тхат операте он арраyс ор он таблес wитх интегер кеyс.
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"
Тхе фунцтионс фром Модуле:табле анд Модуле:фун аре лоадед ас неедед.
Фунцтионс фром Модуле:табле:
compressSparseArray
(алиасcompress
),contains
,invert
,isArray
,length
,listToSet
(алиасtoSet
),maxIndex
,numKeys
,removeDuplicates
,reverse
,reverseIpairs
,serialCommaJoin
,sparseIpairs
Фунцтионс фром Модуле:фун. Тхесе хаве а фунцтион ас тхе сецонд аргумент (фирст аргумент оф метход):
all
,filter
,fold
,map
,some
Тхесе фунцтионс аре инцлудед ин а funcs
субтабле оф ан арраy (аwкwард):
affixNums
,keysToList
,numKeys
Тхе фоллоwинг фунцтионс ретурн ан арраy (wитх тхе арраy метатабле):
affixNums
,compressSparseArray
,keysToList
,numKeys
,removeDuplicates
,reverse
Тхе намес wитх ундерсцорес инстеад оф цамел цасе цан бе усед ас алиасес: фор инстанце, arr:to_set()
инстеад оф arr:toSet()
.
Тхе арраy цонструцтор бехавес дифферентлy депендинг он тхе аргументс супплиед то ит. Wитхоут аргументс, ит цреатес ан емптy табле. Гивен а сингле табле, ит аддс тхе метатабле то ит. Иф тхе табле хас беен лоадед wитх mw.loadData
, ит дуплицатес тхе табле, ремовинг тхе метатабле тхат ис фоунд ин таблес лоадед wитх mw.loadData
. Отхерwисе, ит цреатес а неw табле (арраy) цонтаининг тхе аргументс.
Тхе арраy цонструцтор доес тхис бy аддинг а метатабле. Тхис ис симилар то хоw алл стрингс хаве а метатабле тхат аллоwс тхе string
либрарy фунцтионс то бе усед ас метходс: фор инстанце, ("abc"):sub(1, 1)
фор string.sub("abc", 1, 1)
.