El uso de variables $1, $2 y $n en su código no sólo hace que el código sea menos legible, sino que también puede aumentar la confusión, ya que al cerebro humano le puede resultar difícil recordar a qué corresponden estas variables. La solución es crear una variable con un nombre comprensible y asignarle el valor de $1, $2, o $n.
4D v18 R5 tiene buenas noticias, ahora puede nombrar sus parámetros al declarar
- un método del proyecto,
- un trigger
- un método de base de datos
- un método de formulario
- un constructor de una clase
- una función de una clase.
¡Veamos cómo!
En 4D v18 R4, le mostramos una nueva sintaxis para declarar sus variables:
var $name : Text
var $birthdate : Date
var $file : 4D.File
La nueva sintaxis para métodos y funciones es muy similar.
Nueva declaración para las clases
Después del nombre de la función, añada sus diferentes parámetros de entrada separados por un punto y coma entre paréntesis:
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
Para el parámetro de salida, basta con añadir el símbolo «->» y, a continuación, el nombre y el tipo como parámetro de entrada.
Function getFullname -> $fullname: Text
$fullname :=This.firstName+""+Upper(This.lastName)
Function sendMessage ($text: Text) -> $message: Text
$message :="@"+This.firstname+": "+$text
Nueva declaración de métodos
El mismo principio se aplica a los métodos con una nueva palabra clave: #DECLARE.
- Un ejemplo con un método de proyecto «highlightRow»
#DECLARE($listboxName: Text; $rowNum: Integer)
)
LISTBOX SELECT ROW (*; $listboxName; $rowNum
- Un ejemplo con el método On Web Authentication método de base de datos:
#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...
// ...
Depurador
El nombre del parámetro también es visible en el panel de la cadena de llamadas del depurador. Aquí hay un ejemplo con una función de clase:
Bono
Si necesitas una razón adicional para utilizar la nueva sintaxis, echa un vistazo a la siguiente imagen. Sí. La declaración de la función se muestra en la barra de estado exactamente igual que en los comandos 4D.