Declaraciones y asignaciones de propiedades de clase en una sola línea

Traducido automáticamente de Deepl

En 4D 20 R5, la declaración de propiedades racionalizada ofrece ahora la comodidad de inicializar las propiedades simultáneamente con su declaración, de forma similar a la asignación de variables.

Esta mejora simplifica la legibilidad y la eficiencia del código al permitir a los desarrolladores declarar e inicializar las propiedades en una sola línea. Esto facilita una integración más fluida y reduce la necesidad de bloques de inicialización independientes. Optimiza los flujos de trabajo de desarrollo y garantiza la robustez del código en compiladores e intérpretes, lo que favorece la creación de bases de código más limpias y fáciles de mantener.

Hasta ahora, sólo había una forma de crear una propiedad de clase:

property <propertyName> : <type>

A partir de 4D 20 R5, mejoramos la declaración de propiedades. Al igual que para las variables, ahora puede declarar e inicializar su propiedad en una sola línea, como se describe a continuación:

tipo inferido

property <propertyName> := <value>

Aquí, el tipo se omite y será determinado por el compilador o intérprete basándose en el valor proporcionado. Para evitar errores de compilación, es aconsejable emplear este enfoque exclusivamente con tipos escalares originados por valores, comandos o métodos.

Ejemplo:

//BLOB
property myBlob:=GetBlob()
//Boolean
property myBool:=True
//Null
property myNull:=Null
//Real
property myNum:=(569/2)
//Object
property myObj:={att1: 1}
//Text
property myText:="Hello"
//Collection
property myCol:=[1; 2; 3]
//Date
property myDate:=Current date
//Time
property myTime:=Current time
//Picture
property myPicture:=GetPicture()

// Properties must be declared before class constructor or functions. 
Class constructor

Tipo declarado e inicialización

property <propertyName> : <type> := <value>

En cuanto a la declaración devariables, la propiedad se crea con el tipo dado y luego se inicializa con el valor.

Este tipo de declaración debe utilizarse cuando se inicializa una propiedad con un tipo como un atributo de clase, una variable interproceso o una global. Si no especifica el tipo en estos casos, el intérprete y el compilador evaluarán el no podrán determinar el tipo y utilizarán un tipo variante en su lugar. Por ejemplo:

property myAttribute:=JSON Parse(GetJson()).myAttribute
// The interpreter and the compiler don't know the type of JSON Parse(GetJson()).myAttribute.
// The myAttribute property is declared as a variant

En 4D 20 R5, la declaración de propiedades en una sola línea agiliza la inicialización, mejorando la legibilidad y eficiencia del código. Esta característica, detallada en la documentación, permite una integración perfecta, optimizando los flujos de trabajo de desarrollo y asegurando la robustez del código.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.