Successivo: , Su: Valori e condizioni di verità   [Contenuti][Indice]


6.3.1 Vero e falso in awk

Molti linguaggi di programmazione hanno una particolare rappresentazione per i concetti di “vero” e “falso.” Questi linguaggi usano normalmente le costanti speciali true e false, o forse i loro equivalenti maiuscoli. Però awk è differente. Prende in prestito un concetto molto semplice di vero e falso dal linguaggio C. In awk, ogni valore numerico diverso da zero oppure ogni valore di stringa non vuota è vero. Ogni altro valore (zero o la stringa nulla, "") è falso. Il seguente programma stampa ‘Uno strano valore di verità’ tre volte:

BEGIN {
   if (3.1415927)
       print "Uno strano valore di verità"
   if ("Ottanta e sette anni or sono")
       print "Uno strano valore di verità"
   if (j = 57)
       print "Uno strano valore di verità"
}

C’è una conseguenza sorprendente della regola “non zero o non nullo”: la costante di stringa "0" sta effettivamente per vero, perché è non nulla. (a.b.)