Porovnání s neurčitou hodnotou

Automaticky přeloženo z Deepl

Od vzniku ORDA, tříd a dalších objektů musíte stále častěji pracovat s nedefinovanými hodnotami.

Protože se někteří z vás ptají na jednodušší způsob jejich používání, můžete od verze v20 porovnávat jakýkoli typ hodnoty s nedefinovanou hodnotou, aniž by to vyhodilo chybu.

Obvykle ve 4D porovnávací operátory =, #, >, <, >= a <= kontrolují typ a hodnotu každého operandu. Pokud se typy obou operandů liší, porovnání vyhodí chybu:

Jak jsme již zmínili, chápeme, že při práci s třídami a objekty je nutné pracovat s nedefinovanými hodnotami, proto jsme toto pravidlo zpružnili. Počínaje verzí v20 můžete porovnávat nedefinované hodnoty se všemi typy proměnných:

  • Porovnání = vrací true, když porovnáváte nedefinovanou proměnnou s nulovou nebo nedefinovanou hodnotou, a false ve všech ostatních případech:
$o:=new object
If ($o.undefined =10)
  ...
else
  // returns false because $o.undefined is undefined
  ...
End if
  • Porovnání # vrací nepravdu, pokud porovnáváte nedefinovanou proměnnou s nulovou nebo nedefinovanou hodnotou, a nepravdu ve všech ostatních případech:
$o:=new object
If ($o.undefined #10)
  // returns true because $o.undefined is undefined
  ...
else
  ...
End if
  • Porovnání>, <, >= a <= vrací false při všech porovnáních mezi nedefinovanou proměnnou a skalární hodnotou (číselnou, textovou, datumovou, časovou, logickou). Protože porovnání nemá žádný význam, 4D pro ostatní typy vyhodí chybu.
$o:=new object
If ($o.undefined >10)
  ...
else
  // returns false because $o.undefined is undefined
  ...
End if

Pro více informací se podívejte do dokumentace!

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.