Přidávání a/nebo odebírání prvků do a z kolekcí jsou běžné programátorské úlohy, se kterými se vývojáři často setkávají. 4D v16 R6 poskytuje více než 40 metod pro kolekce, včetně metod speciálně určených pro přidávání a odebírání prvků v kolekci. Pomocí těchto metod můžete snadno vytvořit zásobník (FIFO) nebo frontu (LIFO), přidávat nové prvky na libovolné pozici a mnoho dalšího…
Tento článek je součástí seriálu, který ukazuje, jak manipulovat s kolekcemi pomocí metod přidaných do 4D v16 R6. Chcete-li se dozvědět ještě více, stáhněte si náš databázový příklad, který obsahuje 12 různých příkladů ukazujících, co všechno můžete s metodami kolekcí dělat!
Příklad databáze: Správa kolekcí
Správa prvních a posledních prvků
Přidání hodnoty na začátek kolekce nebo odstranění prvního prvku je snadné díky funkci shift a unshift metodám.
$col:=Novákolekce("a"; "b")
// Vložení nové hodnoty na začátek $col
$col.unshift("c") // $col=["c", "a", "b"]
// Načtení a odstranění prvního prvku $col
$r:=$col.shift()
// $r="c"
// $col=["a", "b"]
Stejně tak je možné použít metody push lze přidat prvek na konec kolekce a metodu pop lze odebrat poslední prvek.$col:=Novákolekce("a"; "b")
// Vložení nové hodnoty na konec kolekce $col
$col.push("c") // $col=["a", "b", "c"]
// Načtení a odstranění posledního prvku $col
$r:=$col.pop()
// $r="c"
// $col=["a", "b"]
Vložení NEBO odstranění libovolného prvku
Samozřejmě je také možné přidat nebo odebrat prvek kdekoli v kolekci pomocí příkazu insert a remove metodami:
$col:=Newcollection("a"; "b")
// Vložení nové hodnoty na určitou pozici v $col
$col.insert(1; "c") // $col=["a", "c", "b"]
// Odstranění druhého prvku $col
$col.remove(1)
// $col=["a", "b"].
. clear odebere všechny prvky v kolekci:
$col:=Newcollection("a"; "b"; "c"; "d"; "e")
$col.clear() // $col=[]
Naplnění nebo změna velikosti kolekce
Všechny hodnoty v kolekci můžete nahradit pomocí metody fill metodu.
$col:=Newcollection("a"; "b"; "c"; "d"; "e")
// Resetujte všechny hodnoty $col na ""
$col.fill("") // $col=["","","","","",""]
A velikost kolekce můžete změnit pomocí metody resize metodou:
$col:=Novákolekce("a"; "b")
$col.resize(5;"") // $col=[a,b,"","","",""]