## Introduzione

Questo è un breve tutorial che non dovrebbe richiedere più 20 minuti per
essere completato. Si presume che tu abbia già installato Ruby sul tuo
computer (se non l’hai fatto puoi [scaricarlo](/it/downloads/) ed
installarlo prima di cominciare).

## L’interattività di Ruby

Apri la shell interattiva di Ruby (IRB).

* Se stai usando **macOS** apri il `Terminal`, scrivi `irb` e premi
  invio.
* Se stai usando **Linux**, apri una shell, scrivi `irb` e premi invio.
* Se stai usando **Windows**, seleziona `Interactive Ruby` dalla
  sezione Ruby del menu di avvio.

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):001:0&gt;</span></code></pre></figure>

Perfetto, ora è aperta… e adesso?

Prova a scrivere `"Ciao Mondo"`

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):001:0&gt;</span><span class="w"> </span><span class="s2">"Ciao Mondo"</span>
<span class="p">=&gt;</span> <span class="s2">"Ciao Mondo"</span></code></pre></figure>

## Ruby ti ha obbedito!

Che cosa è successo? Abbiamo appena scritto il più corto programma “Ciao
Mondo” di tutti i tempi? Non esattamente: la seconda riga è solo il modo
di IRB di dirci che è stato ritornato un valore dall’ultima espressione.
Se vogliamo stampare a schermo “Ciao Mondo” dobbiamo aggiungere qualcosa
in più:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):002:0&gt;</span><span class="w"> </span><span class="nb">puts</span> <span class="s2">"Ciao Mondo"</span>
<span class="go">Ciao Mondo
</span><span class="p">=&gt;</span> <span class="kp">nil</span></code></pre></figure>

`puts` è il comando base per stampare a schermo qualcosa, in Ruby.
Invece `=> nil` in questo caso è il risultato dell’espressione, dal
momento che `puts` ritorna sempre nil, ovvero assolutamente nulla.

## La tua calcolatrice personale

IRB si può usare come una calcolatrice:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):003:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">+</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">5</span></code></pre></figure>

Tre più due è abbastanza semplice dopotutto. Così come tre per due, per
esempio: potresti scriverlo direttamente in IRB, ma è anche possibile
premere **freccia su** e vedere se l’ultima espressione viene
visualizzata, nel cui caso è solamente sufficiente sostituire `+` con
`*`.

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):004:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">*</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">6</span></code></pre></figure>

Ora proviamo a calcolare il quadrato di tre:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):005:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">**</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">9</span></code></pre></figure>

In Ruby `**` rappresenta l’operatore per calcolare le potenze. Mentre
per calcolare una radice quadrata si fa così:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):006:0&gt;</span><span class="w"> </span><span class="no">Math</span><span class="p">.</span><span class="nf">sqrt</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span>
<span class="p">=&gt;</span> <span class="mf">3.0</span></code></pre></figure>

Già, funziona, ma che cosa è successo? E in particolare che cos’è
`Math`?

## Moduli – ovvero come raggruppare del codice per argomento

`Math` è un modulo predefinito per i calcoli matematici. I moduli hanno
un duplice scopo in Ruby, e uno di questi è raggruppare metodi simili
insieme utilizzando un particolare nome adatto allo scopo. `Math`
contiene molti altri metodi come per esempio `sin()` e `tan()`.

Dopo `Math` c’è un punto, ma per quale ragione? Il punto è il modo per
identificare il ricevente di un dato messaggio, in questo caso
`sqrt(9)`, che indica una chiamata al metodo `sqrt` con un parametro
pari a `9`. `sqrt` viene dall’inglese “square root”, radice quadrata.

Il risultato di questa chiamata è il valore `3.0`. Da notare che non è
solo `3`, dal momento che nella maggior parte dei casi la radice
quadrata di un numero non è un intero, bensì un numero a virgola mobile.

E se vogliamo salvare il risultato di questo calcolo? Semplice, basta
assegnarlo ad una variabile:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):007:0&gt;</span><span class="w"> </span><span class="n">a</span> <span class="o">=</span> <span class="mi">3</span> <span class="o">**</span> <span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">9</span>
<span class="gp">irb(main):008:0&gt;</span><span class="w"> </span><span class="n">b</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">**</span> <span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">16</span>
<span class="gp">irb(main):009:0&gt;</span><span class="w"> </span><span class="no">Math</span><span class="p">.</span><span class="nf">sqrt</span><span class="p">(</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="p">)</span>
<span class="p">=&gt;</span> <span class="mf">5.0</span></code></pre></figure>

Sebbene tutto questo sia utile ai fini della nostra “calcolatrice”, ci
stiamo allontanando troppo dal messaggio `Ciao Mondo` usato in tutti i
tutorial per principianti… [Ritorniamoci su.](2/)
