Simplifique las declaraciones y asignaciones de variables en una sola línea

Traducido automáticamente de Deepl

A partir de 4D v20 R3, puede decir adiós a los días de escribir múltiples líneas de código para las declaraciones y asignaciones de variables. Ahora, puede racionalizar su código, eliminar redundancias y aumentar la eficiencia con facilidad.

He aquí cómo.

Hasta ahora, podíamos escribir:

var <variableName> : <type>

Mejoramos esta sintaxis para que puedas declarar e inicializar tu variable en una sola línea.

tipo inferido

var <variableName> := <value>

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

Ejemplo:

//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

Cuando utilice este estilo de escritura, recuerde que 4D intenta deducir el tipo más general. Por ejemplo, 4D utiliza el tipo Real y no el tipo Entero cuando una variable es inicializada por 10. Esto le permite utilizar esta variable con cualquier tipo de cálculo. Si desea utilizar un Entero, debe declarar explícitamente el tipo de su variable.

Tipo declarado e inicialización

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

Aquí, la variable se crea con el tipo dado y luego se inicializa con el valor.

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

var $myClass:={myAttribute: "Helle 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

Así pues, consulta la documentación, explora las infinitas posibilidades que ofrece esta función y comprueba de primera mano cómo esta novedad cambiará el futuro de tus proyectos de programación.

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.