Syntaxe conviviale pour les fonctions et les méthodes des classes.

Traduit automatiquement de Deepl

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.

blank

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.