Comparación con un valor indefinido

Desde la aparición de ORDA, las clases y otros objetos, hay que trabajar cada vez más con valores indefinidos.

Ya que algunos de ustedes piden una forma más fácil de utilizarlos, a partir de v20, puede comparar cualquier tipo de valor con un valor indefinido sin lanzar un error.

Normalmente, en 4D, los operadores de comparación =, #, >, <, >= y <= comprueban el tipo y el valor de cada operando. Si los tipos de los dos operandos son diferentes, la comparación arroja un error:

Como ya hemos mencionado, entendemos que cuando se trabaja con clases y objetos, se debe trabajar con valores indefinidos, por lo que hemos flexibilizado esta regla. A partir de la versión 20, puede comparar valores indefinidos con todos los tipos de variables:

  • La comparación = devuelve un resultado verdadero cuando se compara una variable indefinida con un valor nulo o indefinido y falso en todas las demás formas:
$o:=new object
If ($o.undefined =10)
  ...
else
  // devuelve false porque $o.undefined es indefinido
  ...
End if
  • La comparación # devuelve falso cuando se compara una variable indefinida con un valor nulo o indefinido y falso en todas las demás formas:
$o:=new object
If ($o.undefined #10)
  // devuelve true porque $o.undefined es indefinido
  ...
else
  ...
End if
  • Las comparaciones>, <, >= y <= devuelven false para todas las comparaciones entre una variable indefinida y un valor escalar (numérico, texto, fecha, hora, booleano). Como la comparación no tiene sentido, 4D lanza un error para los otros tipos.
$o:=new object
If ($o.undefined >10)
  ...
else
  // devuelve false porque $o.undefined es indefinido
  ...
End if

Consulte la documentación para más detalles.

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.