Utilizar variáveis de $1, $2, e $n no seu código não só torna o código menos legível, como também pode aumentar a confusão, uma vez que o cérebro humano pode ter dificuldade em lembrar-se a que correspondem estas variáveis. A solução é criar uma variável com um nome compreensível e atribuir-lhe o valor de $1, $2, ou $n.
4D v18 R5 tem boas notícias, pode agora nomear os seus parâmetros ao declarar:
- um método de projecto,
- um gatilho
- um método de base de dados
- um método de formulário
- um construtor de uma classe
- uma função de uma classe.
Vamos ver como!
Em 4D v18 R4, mostrámos-lhe uma nova sintaxe para declarar as suas variáveis:
var $name : Text
var $birthdate : Date
var $file : 4D.File
A nova sintaxe para métodos e funções é muito semelhante.
Nova declaração para as classes
Após o nome da função, adicione os seus vários parâmetros de entrada separados por ponto e vírgula entre parênteses:
Class Constructor($firstname: Text; $lastname: Text; $birthdate: Date)
This .lastName: =$lastname
streetNumber This .firstName:=$firstname
This .birthdate:=$birthdate
Function setAdress ($streetNumber: Text; $streetName : Text; $city : Text)
This .streetNumber:=$ This
.streetName:=$streetName
This .city:=$city
Para o parâmetro de saída, basta adicionar o símbolo “->“, depois o nome e o 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
Nova declaração para métodos
O mesmo princípio aplica-se aos métodos com uma nova palavra-chave: #DECLARE.
- Um exemplo com um “highlightRow” método de projecto:
#DECLARE($listboxName: Text; $rowNum: Integer)
LISTBOX SELECT ROW (*; $listboxName; $rowNum)
- Um exemplo com os comandos On Web Authentication método da base de dados:
#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...
// ...
Debugger
O nome do parâmetro é também visível no painel de chamada em cadeia do depurador. Aqui está um exemplo com uma função de classe:
Bónus
Se precisar de uma razão adicional para utilizar a nova sintaxe, dê uma olhada na imagem abaixo. Sim! A declaração da função é exibida na barra de estado exactamente como é para os comandos 4D.