Come Ruby vede i numeri: sintassi e operatori
Per eseguire istruzioni scritte in Rubyè possibile utilizzare due metodi: quello già visto in precedenza dove vengono passate le istruzioni alla Shell o, in alternativa, la creazione di file di testo contenenti le istruzioni da eseguire; se si utilizza il secondo metodo i file potranno essere salvati tramite un'estensione dedicata chiamata ".rb".
Prendiamo una semplice istruzione matematica come la seguente:
puts 2+2Questa potrà essere passata direttamente in Shell ed eseguita con un [Invio] oppure salvata in un file chiamato ad esempio "addizione.rb"; se si è scelta la strada del salvataggio in un file, l'istruzione contenuta al suo interno potrà essere eseguita tramite una semplice operazione di richiamo:
ruby addizione.rbQualunque sia la modalità scelta, il risultato restituito dall'interprete sarà naturalmente "4"; la nostra istruzione è infatti perfettamente analoga alla seguente:
puts 4Questo discorso ci permette di osservare in quale modo Ruby gestisce i numeri; se si conoscono altri linguaggi di programmazione o di scripting come Perl e PHP sarà possibile notare come il comportamento di Ruby con le cifre sia praticamente identico.
Infatti, a differenza di quanto succede per le stringhe, per introdurre un numero in un'istruzione questo non deve essere delimitato da apici; facciamo un esempio:
# questo è un numero puts 10 # questa è una stringa puts '10'Perchè la differenza sia ancora più chiara, proviamo ad eseguire queste due istruzioni:
# operazione matematica puts 10 - 4 # stampa di una stringa puts '10 - 4'L'output della prima istruzione sarà "6", mentre quello della seconda sarà "10-4"; infatti nel primo caso "10" e "4" sono visti come due operandi e "-" come l'operatore che dovrà determinare la differenza tra i due numeri; nel secondo caso invece "10 - 4" non è altro che una sequenza di caratteri (cioè una stringa) e come tale viene trattata.
L'utilizzo degli spazi all'interno di un'espressione matematica non è rilevante ai fini del funzionamento dello script, se ne consiglia comunque l'impiego per rendere il codice più leggibile.
Come per altri linguaggi, Ruby considera l'esistenza di due tipologie di numeri: gli interi (integer) e i decimali (floating point o semplicemente float). I primi non hanno regole particolari, i secondi devono essere indicati separando i numeri a sinistra e a destra della virgola con un punto, ad esempio:
puts 5.30 - 8.30L'operazione che avrà come risultato un numero negativo pari a "-3.0".
Per quanto riguarda gli operatori utilizzabili nelle operazioni aritmetiche di Ruby, questi sono quelli classici:
# addizione puts 5 + 4 # sottrazione puts 5 - 4 # moltiplicazione puts 5 * 4 # divisione puts 5/4Un discorso particolare è quello relativo agli arrotondamenti; se eseguissimo con una clacolatrice l'ultima operazione presente nell'esempio appena proposto il risultato della divisione sarebbe "1,25", Ruby invece restituirà semplicemente "1". L'interprete è cioè predisposto per l'arrotondamento dei decimali nelle operazioni di divisione.







