Zjednodušení deklarací a přiřazení proměnných na jednom řádku

Automaticky přeloženo z Deepl

Počínaje verzí 4D v20 R3 se můžete rozloučit s dobou, kdy jste pro deklarace a přiřazení proměnných museli psát několik řádků kódu. Nyní můžete snadno zefektivnit svůj kód, odstranit nadbytečnost a zvýšit efektivitu.

Zde je návod, jak na to!

Dosud jsme mohli psát:

var <variableName> : <type>

Tuto syntaxi jsme vylepšili tak, abyste mohli proměnnou deklarovat a inicializovat na jediném řádku.

odvozený typ

var <variableName> := <value>

Zde je typ vynechán a bude určen překladačem nebo interpretem na základě zadané hodnoty. Tento přístup je vhodné používat výhradně u skalárních typů pocházejících z hodnot, příkazů nebo metod, aby se předešlo chybám při kompilaci.

Příklad:

//BLOB
var $vxBlob : Blob
INTEGER TO BLOB(0x0206; $vxBlob; Native byte ordering)
var $blob:=$vxBlob
//Boolean
var $bool:=True
//Null
var $null:=Null
//Real
var $num:=(569/2)
//Object
var $obj:={att1: 1}
//Pointer
var $point:=->$obj
//Text
var $text:="Hello"
//Collection
var $col:=[1; 2; 3]
//Date
var $date:=Current date
//Time
var $time:=Current time
//Picture
var $pict : Picture
var $image:=$pict

Při použití tohoto stylu zápisu nezapomeňte, že 4D se snaží odvodit nejobecnější typ. Například když je proměnná inicializována hodnotou 10, 4D použije typ Real, a nikoliv Integer. To vám umožní používat tuto proměnnou s jakýmkoli typem výpočtu. Pokud chcete použít typ Integer, musíte explicitně deklarovat typ proměnné.

Deklarovaný typ a inicializace

var <variableName> : <type> := <value>

Zde je proměnná vytvořena s daným typem a poté inicializována hodnotou.

Tento typ deklarace je nutné použít, pokud inicializujete proměnnou se složitým typem, jako je atribut třídy, meziprocesová proměnná nebo globální proměnná. Pokud v těchto případech typ neuvedete, interpret vyhodnotí výraz a typ odvodí, zatímco překladač typ odvodit nedokáže a místo toho použije variantní typ. Například:

var $myClass:={myAttribute: "Hello there!"}
var $myAttribute:=$myClass.myAttribute
// The interpreter knows the type of $myClass.myAttribute: $myAttribute is a declared as Text
// The compiler doesn't know the type of $myClass.myAttribute: $myAttribute is a declared as variant

Ponořte se tedy do dokumentace, prozkoumejte nekonečné možnosti, které tato funkce nabízí, a na vlastní kůži se přesvědčte, jak tento převratný doplněk ovlivní budoucnost vašich programátorských snah.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.