Jump to content

Module:ТаблеТоолс/доc

From Ziyosfera

This is the documentation page for Modul:TableTools

Андоза:Усед ин сйстем

Тҳис модуле инcлудес а нумбер оф фунcтионс фор деалинг wитҳ Луа таблес. Ит ис а мета-модуле, меант то бе cаллед фром отҳер Луа модулес, анд шоулд нот бе cаллед диреcтлй фром #инвоке.

Лоадинг тҳе модуле

[edit source]

То усе анй оф тҳе фунcтионс, фирст ёу муст лоад тҳе модуле.

<сйнтахҳигҳлигҳт ланг="луа"> лоcал ТаблеТоолс = реқуире('Модуле:ТаблеТоолс') </сйнтахҳигҳлигҳт>

исПоситивеИнтегер

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.исПоситивеИнтегер(валуэ) </сйнтахҳигҳлигҳт>

Ретурнс true иф value ис а поситиве интегер, анд false иф нот. Алтҳоугҳ ит доэсн'т операте он таблес, ит ис инcлудед ҳере ас ит ис усефул фор детермининг wҳетҳер а гивен табле кей ис ин тҳе аррай парт ор тҳе ҳаш парт оф а табле.

исНан

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.исНан(валуэ) </сйнтахҳигҳлигҳт>

Ретурнс true иф value ис а НаН валуэ, анд false иф нот. Алтҳоугҳ ит доэсн'т операте он таблес, ит ис инcлудед ҳере ас ит ис усефул фор детермининг wҳетҳер а валуэ cан бе а валид табле кей. (Луа wилл генерате ан эррор иф а НаН валуэ ис усед ас а табле кей.)

шаллоwCлоне

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.шаллоwCлоне(т) </сйнтахҳигҳлигҳт>

Ретурнс а cлоне оф а табле. Тҳе валуэ ретурнед ис а неw табле, бут алл субтаблес анд фунcтионс аре шаред. Метаметҳодс аре респеcтед, бут тҳе ретурнед табле wилл ҳаве но метатабле оф иц оwн. Иф ёу wант то маке а неw табле wитҳ но шаред субтаблес анд wитҳ метатаблес трансферред, ёу cан усе mw.clone инстеад. Иф ёу wант то маке а неw табле wитҳ но шаред субтаблес анд wитҳоут метатаблес трансферред, усе deepCopy wитҳ тҳе noMetatable оптион.

ремовеДуплиcатес

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.ремовеДуплиcатес(т) </сйнтахҳигҳлигҳт>

Ремовес дуплиcате валуэс фром ан аррай. Тҳис фунcтион ис онлй десигнед то wорк wитҳ стандард аррайс: кейс тҳат аре нот поситиве интегерс аре игноред, ас аре алл валуэс афтер тҳе фирст nil валуэ. (Фор аррайс cонтаининг nil валуэс, ёу cан усе compressSparseArray фирст.) Тҳе фунcтион триэс то пресерве тҳе ордер оф тҳе аррай: тҳе эарлиэст нон-униқуэ валуэ ис кепт, анд алл субсеқуэнт дуплиcате валуэс аре ремовед. Фор эхампле, фор тҳе табле <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{5, 4, 4, 3, 4, 2, 2, 1}</сйнтахҳигҳлигҳт> removeDuplicates wилл ретурн <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{5, 4, 3, 2, 1}</сйнтахҳигҳлигҳт>.

нумКейс

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.нумКейс(т) </сйнтахҳигҳлигҳт>

Такес а табле t анд ретурнс ан аррай cонтаининг тҳе нумберс оф анй поситиве интегер кейс тҳат ҳаве нон-нил валуэс, сортед ин нумериcал ордер. Фор эхампле, фор тҳе табле <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{'фоо', нил, 'бар', 'баз', а = 'б'}</сйнтахҳигҳлигҳт>, numKeys wилл ретурн <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{1, 3, 4}</сйнтахҳигҳлигҳт>.

аффихНумс

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.аффихНумс(т, префих, суффих) </сйнтахҳигҳлигҳт>

Такес а табле t анд ретурнс ан аррай cонтаининг тҳе нумберс оф кейс wитҳ тҳе оптионал префих prefix анд тҳе оптионал суффих suffix. Фор эхампле, фор тҳе табле <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{а1 = 'фоо', а3 = 'бар', а6 = 'баз'}</сйнтахҳигҳлигҳт> анд тҳе префих 'a', affixNums wилл ретурн <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{1, 3, 6}</сйнтахҳигҳлигҳт>. Алл чараcтерс ин prefix анд suffix аре интерпретед литераллй.

нумДата

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.нумДата(т, cомпресс) </сйнтахҳигҳлигҳт>

Гивен а табле wитҳ кейс лике "foo1", "bar1", "foo2", анд "baz2", ретурнс а табле оф субтаблес ин тҳе формат <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{ [1] = {фоо = 'техт', бар = 'техт'}, [2] = {фоо = 'техт', баз = 'техт'} }</сйнтахҳигҳлигҳт>. Кейс тҳат дон'т энд wитҳ ан интегер аре сторед ин а субтабле намед "other". Тҳе cомпресс оптион cомпрессес тҳе табле со тҳат ит cан бе итератед овер wитҳ ipairs.

cомпрессСпарсеАррай

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.cомпрессСпарсеАррай(т) </сйнтахҳигҳлигҳт>

Такес ан аррай t wитҳ оне ор море нил валуэс, анд ремовес тҳе нил валуэс wҳиле пресервинг тҳе ордер, со тҳат тҳе аррай cан бе сафелй траверсед wитҳ ipairs. Анй кейс тҳат аре нот поситиве интегерс аре ремовед. Фор эхампле, фор тҳе табле <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{1, нил, фоо = 'бар', 3, 2}</сйнтахҳигҳлигҳт>, compressSparseArray wилл ретурн <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{1, 3, 2}</сйнтахҳигҳлигҳт>.

спарсеИпаирс

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.спарсеИпаирс(т) </сйнтахҳигҳлигҳт>

Тҳис ис ан итератор фунcтион фор траверсинг а спарсе аррай t. Ит ис симилар то ipairs, бут wилл cонтинуэ то итерате унтил тҳе ҳигҳест нумериcал кей, wҳереас ipairs май стоп афтер тҳе фирст nil валуэ. Анй кейс тҳат аре нот поситиве интегерс аре игноред.

Усуаллй sparseIpairs ис усед ин а генериc for лооп.

<сйнтахҳигҳлигҳт ланг="луа"> фор и, в ин ТаблеТоолс.спарсеИпаирс(т) до

  -- code block

энд </сйнтахҳигҳлигҳт>

Ноте тҳат sparseIpairs усес тҳе pairs фунcтион ин иц имплементатион. Алтҳоугҳ соме табле кейс аппеар то бе игноред, алл табле кейс аре аccессед wҳен ит ис рун.

сизе

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.сизе(т) </сйнтахҳигҳлигҳт>

Финдс тҳе сизе оф а кей/валуэ паир табле. Фор эхампле, фор тҳе табле <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{фоо = 'фоо', бар = 'бар'}</сйнтахҳигҳлигҳт>, size wилл ретурн 2. Тҳе фунcтион wилл алсо wорк он аррайс, бут фор аррайс ит ис море эффиcиэнт то усе тҳе # оператор. Ноте тҳат то финд тҳе табле сизе, тҳис фунcтион усес тҳе pairs фунcтион то итерате тҳроугҳ алл оф тҳе табле кейс.

кейсТоЛист

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.кейсТоЛист(т, кейСорт, чеcкед) </сйнтахҳигҳлигҳт>

Ретурнс а лист оф тҳе кейс ин а табле, сортед усинг эитҳер а дефаулт cомпарисон фунcтион ор а cустом keySort фунcтион, wҳич фоллоwс тҳе саме рулес ас тҳе comp фунcтион супплиэд то table.sort. Иф keySort ис false, но сортинг ис доне. Сет checked то true то скип тҳе интернал тйпе чеcкинг.

сортедПаирс

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.сортедПаирс(т, кейСорт) </сйнтахҳигҳлигҳт>

Итератес тҳроугҳ а табле, wитҳ тҳе кейс сортед усинг тҳе keysToList фунcтион. Иф тҳере аре онлй нумериcал кейс, sparseIpairs ис пробаблй море эффиcиэнт.

исАррай

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.исАррай(валуэ) </сйнтахҳигҳлигҳт>

Ретурнс true иф value ис а табле анд алл кейс аре cонсеcутиве интегерс стартинг ат 1.

исАррайЛике

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.исАррайЛике(валуэ) </сйнтахҳигҳлигҳт>

Ретурнс true иф value ис итерабле анд алл кейс аре cонсеcутиве интегерс стартинг ат 1.

инверт

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.инверт(арр) </сйнтахҳигҳлигҳт>

Транспосес тҳе кейс анд валуэс ин ан аррай. Фор эхампле, <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">инверт{ "а", "б", "c" }</сйнтахҳигҳлигҳт> йиэлдс <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{ а=1, б=2, c=3 }</сйнтахҳигҳлигҳт>.

листТоСет

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.листТоСет(арр) </сйнтахҳигҳлигҳт>

Cреатес а сет фром тҳе аррай парт оф тҳе табле arr. Индехинг тҳе сет бй анй оф тҳе валуэс оф тҳе аррай ретурнс true. Фор эхампле, <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">листТоСет{ "а", "б", "c" }</сйнтахҳигҳлигҳт> йиэлдс <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">{ а=труэ, б=труэ, c=труэ }</сйнтахҳигҳлигҳт>. Сеэ алсо Модуле:Луа сет фор море адванcед wайс то cреате а сет.

деэпCопй

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.деэпCопй(ориг, ноМетатабле, алреадйСеэн) </сйнтахҳигҳлигҳт>

Cреатес а cопй оф тҳе табле orig. Ас wитҳ mw.clone, алл валуэс тҳат аре нот фунcтионс аре дуплиcатед анд тҳе идентитй оф таблес ис пресервед. Иф noMetatable ис true, тҳен тҳе метатабле (иф анй) ис нот cопиэд. Cан cопй таблес лоадед wитҳ mw.loadData.

Симилар то mw.clone, бут mw.clone cаннот cопй таблес лоадед wитҳ mw.loadData анд доэс нот аллоw метатаблес нот то бе cопиэд.

спарсеCонcат

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.спарсеCонcат(т, сеп, и, ж) </сйнтахҳигҳлигҳт>

Cонcатенатес алл валуэс ин тҳе табле тҳат аре индехед бй а поситиве интегер, ин ордер. Фор эхампле, <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">спарсеCонcат{ "а", нил, "c", "д" }</сйнтахҳигҳлигҳт> йиэлдс <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">"аcд"</сйнтахҳигҳлигҳт> анд <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">спарсеCонcат{ нил, "б", "c", "д" }</сйнтахҳигҳлигҳт> йиэлдс <сйнтахҳигҳлигҳт ланг="луа" cласс="" ид="" стйле="" инлине="1">"бcд"</сйнтахҳигҳлигҳт>.

ленгтҳ

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.ленгтҳ(т, префих) </сйнтахҳигҳлигҳт>

Финдс тҳе ленгтҳ оф ан аррай ор оф а қуаси-аррай wитҳ кейс wитҳ ан оптионал prefix суч ас "дата1", "дата2", этc. Ит усес ан эхпонентиал сеарч алгоритҳм то финд тҳе ленгтҳ, со ас то усе ас феw табле лоокупс ас поссибле.

Тҳис алгоритҳм ис усефул фор аррайс тҳат усе метатаблес (э.г. фраме.аргс) анд фор қуаси-аррайс. Фор нормал аррайс, жуст усе тҳе # оператор, ас ит ис имплементед ин C анд wилл бе қуиcкер.

инАррай

[edit source]

<сйнтахҳигҳлигҳт ланг="луа"> ТаблеТоолс.инАррай(арр, валуэТоФинд) </сйнтахҳигҳлигҳт>

Ретурнс true иф valueToFind ис а мембер оф тҳе аррай arr, анд false отҳерwисе.