Linguaggio 4D: I miglioramenti richiesti sono arrivati

Tradotto automaticamente da Deepl

Sognate di utilizzare la valutazione dei cortocircuiti, gli operatori ternari, di uscire da un ciclo o di uscire da un metodo con una semplice parola chiave?

Beh, non sognate più! Abbiamo ascoltato e tenuto d’occhio le vostre richieste di funzionalità dal Forum 4D, quindi ecco una serie di miglioramenti del linguaggio 4D che vi aiuteranno a semplificare il vostro codice.

ritorno, continuazione e interruzione

Abbiamo aggiunto 2 nuove dichiarazioni che consentono di uscire da un blocco di codice:

  • La parola chiave return termina l’esecuzione del metodo o della funzione in cui compare e restituisce il controllo al metodo chiamante. Può anche restituire un valore opzionale:
function factorial ( $n : Integer) : Integer
  
If ($n<1)
  return 1
Else 
  return $n*factorial($n-1)
End if 
  • La parola chiave break termina il ciclo che la contiene. L’istruzione eseguita è quella immediatamente successiva al corpo del ciclo:
For ($i; 1; 100)
   If ($myTab{$i}="")
      break
   End if 
End for
If ($i<101)
   // your code
End if
  • L’istruzione continue termina l’esecuzione delle istruzioni nell’iterazione corrente del ciclo corrente e continua l’esecuzione del ciclo con l’iterazione successiva:
For ($i; 0; 10)
   If ($i=3)
      continue
   End if
   $text+=String($i)
End for
// $text="012456789" 

valutazione in cortocircuito

In un’espressione che utilizza un operatore AND o OR, una valutazione a corto circuito significa che il secondo argomento viene eseguito o valutato solo se il primo argomento non è sufficiente a determinare il valore dell’espressione. Abbiamo aggiunto due nuovi operatori per farlo:

  • && per l’operatore AND:
  • || per l’operatore OR

Questo nuovo modo di scrivere gli operatori AND e OR consente di scrivere questo tipo di test in una sola riga:

if (($myColl.length>0) && ($myColl[$i]>10))
	// your code
End if 

Se $myColl è vuoto, il secondo argomento non viene eseguito, quindi non viene lanciato alcun errore.

Naturalmente, tutti voi avete capito che questo stile di scrittura ha l’interesse di rendere il codice più leggibile. Ma vi permette di andare oltre.

Quando si scrive expr1 && expr2 o expr1 || expr2, 4D valuta entrambe le espressioni truthy o falsy natura. I valori elencati di seguito sono considerati come falsy:

  • falso
  • Null
  • indefinito
  • Null oggetto
  • Null collezione
  • Null puntatore
  • Null immagine
  • Null data
  • “” – Stringhe vuote
  • [] – Raccolte vuote
  • {} – Oggetti vuoti

Tutti gli altri valori sono considerati truthy.

L’operatore || restituisce la prima espressione se la prima espressione è truthyaltrimenti restituisce la seconda.

L’operatore && restituisce la prima espressione se la prima espressione è falsyaltrimenti restituisce la seconda.

Ad esempio, il codice seguente non restituisce un booleano, ma un valore numerico:

$salary:= $employee.salary || $minSalary

$employee.salary viene valutato per primo. Se il suo risultato non è Null, viene considerato come truthy e viene restituito.

Se $employee.salary è Null, e quindi falsy, viene valutata la seconda espressione($minSalario) e il suo risultato viene restituito.

Operatori di assegnazione composti

Glioperatori di assegnazione composti sono una forma semplificata di operazioni di scrittura:

  • L’operatore di assegnazione di addizione (+=) aggiunge il valore dell’operando di destra a una variabile e assegna il risultato alla variabile.
$a+=5  
 // equals to $a:=$a+5
  • L’operatore di assegnazione di sottrazione (-=) sottrae il valore dell’operando di destra da una variabile e assegna il risultato alla variabile.
$s-=5 
// equals to $s:=$s-5
  • L’operatore di divisione (/=) divide una variabile per il valore dell’operando di destra e assegna il risultato alla variabile.
$d/=2 
// equals to $d:=$d/2
  • L’operatore di assegnazione di moltiplicazione (*=) moltiplica una variabile per il valore dell’operando di destra e assegna il risultato alla variabile.
$m*=5 
// equals to $m:=$m*5

Operatore ternario

Un operatore ternario è costituito da una condizione seguita da un punto interrogativo ( ? ), un’espressione da valutare se la condizione è truthy seguita da un punto e virgola ( : ). Infine, l’espressione da valutare se la condizione è falsy: condizione ? valore Se Vero : valore Se Falso

Ad esempio, è possibile scrivere:

$label:=($size>1000) ? "big" : "small" 

L’operatore ternario è molto simile al comando Choose, tranne per il fatto che Choose accetta solo un’espressione booleana come condizione, mentre l’operatore ternario accetta tutti i tipi e testa i loro valori di falsy e truthy stato.

Ulteriori informazioni sono disponibili qui.

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à.