Simplificar as declarações e atribuições de variáveis numa única linha

Tradução automática de Deepl

A partir de 4D v20 R3, pode dizer adeus aos dias de escrever múltiplas linhas de código para declarações e atribuições de variáveis. Agora, pode simplificar seu código, eliminar redundância, e aumentar a eficiência com facilidade.

Veja como!

Até agora, podíamos escrever:

var <variableName> : <type>

Aprimoramos essa sintaxe para permitir que você declare e inicialize sua variável em uma única linha.

tipo inferido

var <variableName> := <value>

Aqui, o tipo é omitido e será determinado pelo compilador ou intérprete com base no valor fornecido. É aconselhável empregar esta abordagem exclusivamente com tipos escalares originados de valores, comandos ou métodos para evitar erros de compilação.

Exemplo:

//BLOB
var $vxBlob : Blob
INTEGER TO BLOB(0x0206; $vxBlob; Native byte ordering)
var $blob:=$vxBlob
//Boolean
var $bool:=True
//Null
var $null:=Null
//Real
var $num:=(569/2)
//Object
var $obj:={att1: 1}
//Pointer
var $point:=->$obj
//Text
var $text:="Hello"
//Collection
var $col:=[1; 2; 3]
//Date
var $date:=Current date
//Time
var $time:=Current time
//Picture
var $pict : Picture
var $image:=$pict

Quando usar este estilo de escrita, lembre-se que 4D tenta deduzir o tipo mais geral. Por exemplo, 4D usa o tipo Real e não o tipo Integer quando uma variável é inicializada por 10. Isso permite que use essa variável com qualquer tipo de cálculo. Se quiser usar um Integer, deve declarar explicitamente o tipo de sua variável.

Tipo declarado e inicialização

var <variableName> : <type> := <value>

Aqui, a variável é criada com o tipo dado e depois inicializada com o valor.

Esse tipo de declaração deve ser usado quando se inicializa uma variável com um tipo complexo, como um atributo de classe, uma variável de interprocesso ou uma variável global. Se não especificar o tipo nestes casos, o intérprete avaliará a expressão e deduzirá o tipo, enquanto o compilador não conseguirá deduzir o tipo e utilizará um tipo variante. Por exemplo:

var $myClass:={myAttribute: "Hello there!"}
var $myAttribute:=$myClass.myAttribute
// The interpreter knows the type of $myClass.myAttribute: $myAttribute is a declared as Text
// The compiler doesn't know the type of $myClass.myAttribute: $myAttribute is a declared as variant

Portanto, mergulhe na documentação, explore as infinitas possibilidades que esse recurso oferece e testemunhe em primeira mão como essa adição revolucionária moldará o futuro de seus esforços de codificação.

Fabrice Mainguené
- Proprietário do produto ->p>Fabrice Mainguené juntou-se à equipa do Programa 4D em Novembro, 2016. Como Proprietário do Produto, está encarregado de escrever as histórias dos utilizadores, traduzindo-as depois para especificações funcionais. O seu papel é também o de assegurar que a implementação da funcionalidade entregue vai ao encontro das necessidades do cliente.Após a obtenção da licenciatura em Informática no CNAM, Fabrice juntou-se a uma pequena empresa editora de software como programador Windev. Depois trabalhou para diferentes empresas nas áreas da indústria e comércio como programador Windev e web developer, bem como como consultor técnico sobre novas funcionalidades.