Sníte o tom, že budete používat vyhodnocování zkratek, ternární operátory, uvolnění ze smyčky nebo ukončení metody pomocí jednoduchého klíčového slova?
Tak už o tom nesněte! Naslouchali jsme a sledovali vaše požadavky na funkce z Fóra 4D, takže přichází sada vylepšení jazyka 4D, která vám pomohou zjednodušit váš kód.
return, continue a break
Přidáváme 2 nové příkazy, které vám umožní vyskočit z bloku kódu:
- Příkaz return Klíčové slovo ukončí provádění metody nebo funkce, ve které se objevuje, a vrátí řízení volající metodě. Může také vracet nepovinnou hodnotu:
function factorial ( $n : Integer) : Integer
If ($n<1)
return 1
Else
return $n*factorial($n-1)
End if
- Na adrese . break klíčové slovo ukončí smyčku, která ho obsahuje. Následující vykonaný příkaz je ten, který následuje bezprostředně za tělem smyčky:
For ($i; 1; 100)
If ($myTab{$i}="")
break
End if
End for
If ($i<101)
// your code
End if
- . continue příkaz ukončí provádění příkazů v aktuální iteraci aktuální smyčky a pokračuje ve vykonávání smyčky další iterací:
For ($i; 0; 10)
If ($i=3)
continue
End if
$text+=String($i)
End for
// $text="012456789"
vyhodnocení zkratu
Ve výrazu, který používá operátor AND nebo OR, znamená zkrácené vyhodnocení, že druhý argument se provede nebo vyhodnotí pouze v případě, že první argument nestačí k určení hodnoty výrazu. K tomu jsme přidali dva nové operátory:
Tento nový způsob zápisu operátorů AND a OR umožňuje zapsat tento typ testu na jeden řádek:
if (($myColl.length>0) && ($myColl[$i]>10))
// your code
End if
Pokud je $myColl prázdný, druhý argument se neprovede, takže se nevyhodí žádná chyba.
Všichni tedy samozřejmě snadno pochopíte zajímavost tohoto stylu zápisu, aby byl váš kód čitelnější. Umožňuje vám však jít ještě dál.
Když napíšete expr1 && expr2 nebo expr1 || expr2, 4D vyhodnotí oba výrazy truthy nebo falsy povahu. Níže uvedené hodnoty jsou považovány za falsy:
- false
- Null
- undefined
- Null objekt
- Null kolekce
- Null ukazatel
- Null obrázek
- Null datum
- „“ – Prázdné řetězce
- [] – Prázdné kolekce
- {} – Prázdné objekty
Všechny ostatní hodnoty jsou považovány za truthy.
Operátor || vrací první výraz, pokud je první výraz truthy, v opačném případě vrací druhý výraz.
Operátor && vrací první výraz, pokud první výraz je falsy, v opačném případě vrací druhý výraz.
Například níže uvedený kód nevrací boolean, ale číselnou hodnotu:
$salary:= $employee.salary || $minSalary
$employee.salary se vyhodnotí jako první. Pokud jeho výsledek není Null, je považován za truthy a je vrácen.
Pokud $employee.salary je Null, a tedy i . falsy, vyhodnotí se druhý výraz($minSalary) a vrátí se jeho výsledek.
Operátory složeného přiřazení
Operátory složeného přiřazení jsou zjednodušenou formou zápisu operací:
- Operátor přiřazení sčítání (+=) přičte hodnotu pravého operandu k proměnné a výsledek přiřadí proměnné.
$a+=5
// equals to $a:=$a+5
- Operátor přiřazení odečtení (-=) odečte hodnotu pravého operandu od proměnné a výsledek přiřadí proměnné.
$s-=5
// equals to $s:=$s-5
- Operátor přiřazení dělení (/=) dělí proměnnou hodnotou pravého operandu a výsledek přiřadí proměnné.
$d/=2
// equals to $d:=$d/2
- Operátor přiřazení násobení (*=) násobí proměnnou hodnotou pravého operandu a výsledek přiřadí proměnné.
$m*=5
// equals to $m:=$m*5
Ternární operátor
Třísložkový operátor je podmínka, za kterou následuje otazník ( ? ), výraz, který se vyhodnotí, pokud je podmínka truthy, za kterým následuje dvojtečka ( : ). A nakonec výraz, který se vyhodnotí, pokud je podmínka falsy: podmínka ? hodnota If True : hodnota If False.
Můžete například napsat:
$label:=($size>1000) ? "big" : "small"
Ternární operátor je velmi podobný příkazu Choose s tím rozdílem, že Choose přijímá jako podmínku pouze logický výraz, zatímco ternární operátor přijímá všechny typy a testuje jejich falsy a truthy stav.
Více informací naleznete zde.