Sintaxe amiga do codificador para funções e métodos de classe

Tradução automática de Deepl

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.

blank

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.