Používání proměnných $1, $2 a $n v kódu nejen zhoršuje jeho čitelnost, ale může také zvyšovat zmatek, protože pro lidský mozek může být obtížné zapamatovat si, čemu tyto proměnné odpovídají. Řešením je vytvořit proměnnou se srozumitelným názvem a přiřadit jí hodnotu $1, $2 nebo $n.
4D v18 R5 má dobrou zprávu, nyní můžete při deklaraci pojmenovávat parametry:
- metody projektu,
- spouštěče
- databázové metody
- metody formuláře
- konstruktoru třídy
- funkce třídy.
Podívejme se, jak na to!
Ve verzi 4D v18 R4 jsme vám ukázali novou syntaxi pro deklaraci proměnných:
var $name : Text
var $birthdate : Date
var $file : 4D.File
Nová syntaxe pro metody a funkce je velmi podobná.
Nová deklarace pro třídy
Za název funkce přidejte své různé vstupní parametry oddělené středníkem v závorce:
Class Constructor($firstname: Text; $lastname: Text; $birthdate: Date)
This .lastName:=$lastname
This .firstName:=$firstname
This .birthdate:=$birthdate
Function setAdress ($streetNumber: Text; $streetName : Text; $city : Text)
This .streetNumber:=$streetNumber
This .streetName:=$streetName
This .city:=$city
Pro výstupní parametr stačí přidat symbol „->“ a poté název a typ jako u vstupního parametru.
Function getFullname -> $fullname: Text
$fullname :=This.firstName+""+Upper(This.lastName)
Function sendMessage ($text: Text) -> $message: Text
$message :="@"+This.firstname+": "+$text
Nová deklarace pro metody
Stejný princip platí i pro metody s novým klíčovým slovem: #DECLARE.
- Příklad s metodou projektu „highlightRow“:
#DECLARE($listboxName: Text; $rowNum: Integer)
LISTBOX SELECT ROW (*; $listboxName; $rowNum)
- Příklad s funkcí On Web Authentication databázovou metodou:
#DECLARE($url: Text; $header: Text; \
$BrowserIP : Text; $ServerIP: Text; \
$user : Text; $password: Text) \
->$RequestAccepted: Boolean
$entitySelection :=ds.User.query("login=:1"; $user)
// Check hash password...
// ...
Ladicí program
Název parametru je viditelný také v podokně řetězce volání ladicího programu. Zde je příklad s funkcí třídy:
Bonus
Pokud potřebujete další důvod, proč používat novou syntaxi, podívejte se na obrázek níže. Ano! Deklarace funkce se zobrazuje ve stavovém řádku přesně tak, jak je tomu u příkazů 4D.