Confronto con un valore indefinito

Tradotto automaticamente da Deepl

Dalla comparsa di ORDA, classi e altri oggetti, si deve lavorare sempre più spesso con i valori indefiniti.

Poiché alcuni di voi chiedono un modo più semplice per usarli, a partire dalla versione 20, è possibile confrontare qualsiasi tipo di valore con un valore non definito senza che venga lanciato un errore.

Di solito, in 4D, gli operatori di confronto =, #, >, <, >= e <= controllano il tipo e il valore di ciascun operando. Se i tipi dei due operandi sono diversi, il confronto genera un errore:

Come già detto, sappiamo che quando si lavora con classi e oggetti è necessario lavorare con valori non definiti, quindi abbiamo reso questa regola più flessibile. A partire dalla versione v20, è possibile confrontare valori indefiniti con tutti i tipi di variabili:

  • Il confronto = restituisce true quando si confronta una variabile undefined con un valore null o undefined e false in tutti gli altri modi:
$o:=new object
If ($o.undefined =10)
  ...
else
  // returns false because $o.undefined is undefined
  ...
End if
  • Il confronto # restituisce falso quando si confronta una variabile non definita con un valore nullo o non definito e falso in tutti gli altri modi:
$o:=new object
If ($o.undefined #10)
  // returns true because $o.undefined is undefined
  ...
else
  ...
End if
  • I confronti>, <, >= e <= restituiscono false per tutti i confronti tra una variabile non definita e un valore scalare (numerico, testo, data, ora, booleano). Poiché il confronto non ha significato, 4D lancia un errore per gli altri tipi.
$o:=new object
If ($o.undefined >10)
  ...
else
  // returns false because $o.undefined is undefined
  ...
End if

Consultate la documentazione per maggiori dettagli!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.