Home Rhyylen
Contatto
 
 
 
Crystal Language
Capitolo 6
I booleani

Le variabili di tipo booleano sono probabilmente le più semplici da un punto di vista concettuale: esse possono assumere solo due valori: true (vero) e false (falso). Questi sono anche gli unici valori accettati non vanno bene valori numerici tipo 0 e 1 come in altri linguaggi, ad esempio il C. Tuttavia, per favorire l'interoperabilità con il C stesso esiste un escamotage, come vedremo più avanti.

x = true
puts x
y = false
puts y

Come si può vedere il loro uso è del tutto banale. L'uso di variabili booleane pure e semplici è normalmente abbastanza limitato rispetto ad altre tipologie. Tuttavia il concetto di "valore booleano" è molto utilizzato quanto si tratta di gestire delle espressioni. Per comprendere meglio il discorso introduciamo gli operatori logici di confronto che useremo piu frequentemente in questo linguaggio (e in altri, ca va sans dire):

>= maggiore di
<= minore di
>= maggiore o uguale di
<= minore o uguale di
== uguale a
!= diverso da

la risposta all'applicazione di questi operatori è ovviamente una risposta che non può che essere vero o falso.

puts (1 < 0)
puts (1 == 0)
puts (1 != 1)
puts (1 == 1)
puts (3 > 1)
puts (2 >= 2)

sono tutte espressioni che restituiscono vero o falso, come è facile verificare. Molto spesso nel programmare è necessario usare questi operatori e, di conseguenza, ricevere dei valori booleani in risposta.  Il "confronto" è frequentissimo nell'ambito della programmazione. Questi operatori logici sono estremamente flessibili, qui li abbiamo visti applicati agli interi ma è possibile utilizzarli su tanti altri tipi di dati.
Nel linguaggio C i valori true e false sono a volte indicati come 1 e 0. Per favorire l'interoperabilità con questo linguaggio Crystal prevede il metodo to_unsafe:

x = true
y = x.to_unsafe
puts y

e l'output sarà il numero 1.

Le variabili booleane hanno altri metodi, ad esempio l'onnipresente to_s per la conversione in stringa del suo valore, ma raramente vi capiterà di usarli.

Vi sono invece altri operatori che possiamo utilizzare con i valori booleani:

||   or
&&   and
^    or esclusivo (xor)

Con questi operatori i valori true e false vanno valutati a coppie:
sia T = true e F = false:

T || T -> T     T || F -> T      F || T -> T      F || F -> F

T && T -> T     T && F -> F      F && T -> F      F && F -> F

T ^ T  -> F     T ^ F  -> F      F ^ T  -> T      F ^ F  -> T

Quando affronteremo il controllo di flusso tutto quanto visto qui ci verrà molto utile.