Jiný způsob kódování: Objektový zápis

Automaticky přeloženo z Deepl

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)

Více informací o sbírkách >

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:

Připravte se na notaci objektů >

Vanessa Talbot
• Product Owner • Vanessa Talbot se připojila k programovému týmu 4D v červnu 2014. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.