L’utilisation de variables $1, $2 et $n dans votre code ne rend pas seulement le code moins lisible, elle peut aussi augmenter la confusion puisque le cerveau humain peut avoir du mal à se souvenir de ce à quoi ces variables correspondent. La solution consiste à créer une variable avec un nom compréhensible et à lui attribuer la valeur de $1, $2 ou $n.
4D v18 R5 a une bonne nouvelle, vous pouvez maintenant nommer vos paramètres lors de la déclaration :
- une méthode de projet,
- un trigger
- une méthode de base de données
- une méthode de formulaire
- un constructeur d’une classe
- une fonction d’une classe.
Voyons comment !
Dans 4D v18 R4, nous vous avons montré une nouvelle syntaxe pour déclarer vos variables:
var $name : Text
var $birthdate : Date
var $file : 4D.File
La nouvelle syntaxe des méthodes et des fonctions est très similaire.
Nouvelle déclaration pour les classes
Après le nom de la fonction, ajoutez vos différents paramètres d’entrée séparés par un point-virgule entre parenthèses :
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
Pour le paramètre de sortie, il suffit d’ajouter le symbole « -> », puis le nom et le type comme le paramètre d’entrée.
Function getFullname -> $fullname: Text
$fullname :=This.firstName+ ""+Upper(This.lastName)
Function sendMessage ($text: Text) -> $message: Text
$message := "@"+This.firstname+" : "+$text
Nouvelle déclaration pour les méthodes
Le même principe s’applique aux méthodes avec un nouveau mot clé : #DECLARE.
- Un exemple avec une méthode de projet « highlightRow » » :
#DECLARE($listboxName: Text; $rowNum: Integer)
LISTBOX SELECT ROW (* ; $listboxName; $rowNum)
- Un exemple avec la méthode On Web Authentication de la base de données :
#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...
// ...
Débogueur
Le nom du paramètre est également visible dans le panneau de la chaîne d’appel du débogueur. Voici un exemple avec une fonction de classe :
Bonus
Si vous avez besoin d’une raison supplémentaire pour utiliser la nouvelle syntaxe, jetez un coup d’œil à l’image ci-dessous. Oui ! La déclaration de la fonction est affichée dans la barre d’état, exactement comme pour les commandes 4D.