Comparação com um Valor Indefinido

Desde o aparecimento da ORDA, classes, e outros objetos, é necessário trabalhar cada vez mais com valores indefinidos.

Como alguns de vocês pediram uma forma mais fácil de utilizá-los, a começar pela v20, podem comparar qualquer tipo de valor com um valor indefinido sem criar um erro.

Normalmente, em 4D, os operadores de comparação =, #, >, <, >=, e <= verificam o tipo e o valor de cada operando. Se os tipos dos dois operandos forem diferentes, a comparação lança um erro:

Como mencionado anteriormente, entendemos que ao trabalhar com classes e objetos, é necessário trabalhar com valores indefinidos, pelo que tornamos esta regra mais flexível. A partir da v20, é possível comparar valores indefinidos com todos os tipos de variáveis:

  • O = comparação retorna verdadeiro quando se comparar uma variável indefinida com um valor nulo ou indefinido e falso em todas as outras formas:
$o:=new object
If ($o.undefined =10)
  ...
else
  // retorna falso porque $o.undefined é indefinido
  ...
End if
  • A # comparação retorna falso quando se comparar uma variável indefinida com um valor nulo ou indefinido e verdadeiro em todas as outras formas:
$o:=new object
If ($o.undefined #10)
  // retorna true porque $o.undefined é indefinido
  ...
else
  ...
End if
  • As comparações>, <, >= e <= retornam falsas para todas as comparações entre uma variável indefinida e um valor escalar (numérico, texto, data, hora, booleano). Como a comparação não tem qualquer significado, 4D lança um erro para os outros tipos.
$o:=new object
If ($o.undefined >10)
  ...
else
  // retorna false porque $o.undefined é indefinido
  ...
End if

Consulte a documentação para mais detalhes!

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.