Objekty jsou skvělé, všichni to říkají. Kromě toho, že jsou úžasně flexibilní, jsou neuvěřitelně rychlé. Můžete prohledávat miliony záznamů během pouhého zlomku sekundy. 4D v16 dokonce umožňuje řazení podle atributů objektů a provádění výpočtů, jako je součet nebo průměr.
Ve verzi 4D v16 R4 byl jazyk 4D výrazně vylepšen, aby bylo používání objektů mnohem pohodlnější – s podporou objektové notace. Rychlý, flexibilní, efektivní a nyní i elegantní!
Co je možné?
S objekty jazyka 4D lze pracovat pomocí standardní objektové notace a získávat nebo nastavovat jejich hodnoty. S objektovou notací:
- k vlastnostem objektu lze přistupovat pomocí symbolu „tečka“ (např. employee.name).
- k prvkům kolekce objektů lze přistupovat pomocí hranatých závorek (např. rooms[2]).
- k vloženým podobjektům a vlastnostem podobjektů lze přistupovat pomocí posloupnosti symbolů (např. employee.children[2].age).
Dobrá zpráva, nyní máte prostředek, jak se zbavit všech těch OB Get a OB SET ve svém kódu! A víte co? Provádění kódu je s objektovou notací desetkrát rychlejší ve srovnání s OB Get/OB SET použití!
Příklady zápisu objektů
Řekněme, že máme $o objekt obsahující následující informace:
{ "Lastname": "Doe", "Firstname": "John", "Avatar": "[object Picture]" "Child": [{ "Name": "Susan", "Age": 3 } , { "Name": "Bob", "Age": 8 }] }
Pro načtení „Firstname“ napíšete:
S objektovou notací
C_TEXT($name)
$name :=$o.Firstname
Bez objektové notace
C_TEXT($name)
$name :=OB Get($o; "Jméno")
Pro získání atributu „Name“ druhého dítěte napíšete:
Se zápisem objektu
C_TEXT($name)
$name :=$o.Child[1].Name
Bez zápisu objektu
ARRAY OBJECT($aChild;0)
C_TEXT ($name)
OB GET ARRAY ($o; "Dítě";$aChild)
$name :=OB GET($aChild{2}; "Jméno")
Chcete-li přidat další děti, napíšete:
S objektovým zápisem
$o.Child[2].Name:="Mike"
$o .Child[2].Age:=9
Bez zápisu objektu
ARRAY OBJECT($aChild;0)
C_OBJECT ($kid)
OB GET ARRAY ($o; "Dítě";$aChild)
OB SET ($kid; "Jméno"; "Mike")
OB SET ($kid; "Věk";9)
APPEND TO ARRAY ($aChild;$kid)
OB SET ARRAY ($o; "Dítě";$aChild)
Chcete-li přidat obrázek do atributu objektu, napište:
S objektovým zápisem
C_PICTURE($img)
READ PICTURE FILE("img.jpg";$img )
$o .Avatar:=$img
Bez objektového zápisu
C_PICTURE($img )
READ PICTURE FILE ("img.jpg";$img )
OB SET ($o; "avatar";$img)
Přečtěte si více o Obrázky v objektech >
Chcete-li použít ukazatelový zápis, napíšete:
S objektovou notací
C_POINTER($p)
$p :=->$o
...
C_TEXT ($name)
$name :=$p->Křestní jméno
Bez objektového zápisu
C_POINTER($p)
$p :=->$o
...
C_TEXT ($name)
$name :=OB Get($p->; "Jméno")
Jak povolím zápis objektů?
Abyste mohli využívat objektový zápis, musíte přejít na stránku Nastavení kompatibility v dialogu Nastavení databáze a kliknout na tlačítko „Aktivovat objektový zápis“:
Před aktivací objektové notace je třeba splnit některé předpoklady, ale my vám pomůžeme s přípravou: