Ruby – iniziamo con gli script

r3Finora abbiamo usato Ruby nella versione interattiva:

s0
anzi, per non avere roba inutile nella versione:

s1
e per non dover scrivere ogni volta irb --simple-prompt abbiamo visto come fare per creare un comando personalizzato:

s2
procedura che dipende dal sistema operativo, come spiegato nelle prime lezioni, andate a quei post se necessario.

Ma oggi si cambia tutto, iniziamo con gli script, i programmi, come fanno i veri programmatoriTM.

Apriamo un documento di testo che salveremo con il nome hw.rb (con Blocco note, Notepad2 o qualcosa di simile con Windows, con Gedit, Nano, Geany su Linux) e scriviamoci dentro le nostre istruzioni, così

puts "Hello World!"

Potremo eseguire lo script nel terminale in questo modo:

hw

Questo è un passo obbligatorio quando si inizia a raccontare di un nuovo linguaggio. Fin dai tempi di K&R (Kernighan e Ritchie, tanto tempo fa quando ero ggiovane).

Vediamo qualcosa di più articolato:

# qualche calcolo semplice
# per impratichirci

val1 = 17
val2 = 5
somma = val1 + val2
print val1, ' + ', val2, ' = ', somma
puts ''

prodotto = val1 * val2
print val1, ' * ', val2, ' = '
puts prodotto

quoz = val1 / val2
resto = val1 % val2

print val1, ' / ', val2, ' = ', quoz, ' con resto ', resto, "\n"

sc0

OK?

Ci sono parecchie cose nuove, vediamone qualcuna.
Il carattere # e tutto quello che segue fino alla fine della riga indica un commento e viene ignorato da Ruby. Ma serve a noi, non immaginate quanto! Ogni script potrà o dovrà essere modificato in futuro, urgentemente, vi sarete certo dimenticati di com’è fatto e se è più lungo di poche righe sarà tedioso doverlo rileggere tutto.
Avremmo potuto inserire commenti come # definizione dei dati, # calcolo della somma, etc..
È possibile inserire righe vuote, vengono ignorate dall’interprete ma servono a noi.

Sempre in previsione di quando dovremo aggiornare lo script usiamo dei nomi significativi per le variabili, come somma, prodotto, quoz (sarebbe quoziente ma non sono stato abbastanza paziente) e resto.

Di puts e print ne abbiamo parlato nei post precedenti, entrambi scrivono sul terminale. La differenza è che puts va a capo dopo ogni dato che scrive, print no.
Per cui si può far scrivere tutto a print e mettere un puts vuoto, come nelle righe 7 e 8 oppure dare tutto in pasto a print tranne l’ultimo dato, come nelle righe 11 e 12.
Se poi uno vuole fa come in riga 17, se si ricorda delle differenze tra apici e virgolette e delle sequenze di escape.

Adesso una cosa che vale solo per Linux, chi usa Windows chiuda gli occhi per le prossime righe.
Scrivere ogni volta ruby nome.rb è faticoso! Ma c’è un rimedio, questo:

#!/usr/bin/ruby
print "Hello World!\n"

La prima riga sembra un commento (e lo è) ma in realtà è anche la shebang che ci consente di rendere eseguibile lo script così:

sb

Il comando chmod dobbiamo darlo solo una volta, possiamo anche verificare se l’abbiamo già dato:

ls

Notare la x (sta per execute) presente nei permessi, solo per sb.rb.

OK, fine particolarità solo per Linux.

Un’ultima cosa importante, guardate questo script:

prima = "Hello "
seconda = "world!"

print prima seconda
puts

err

OPS! errore alla riga 4, correggere così

prima = "Hello "
seconda = "world!"

print prima, seconda
puts

err-c

Queste cose a me capitano spesso. tanto spesso che penso che il ‘puter ce l’abbia con me 😉

Posta un commento o usa questo indirizzo per il trackback.

Commenti

  • bakerstreetboy  Il 24 aprile 2013 alle 13:40

    Sinceramente non ho ancora capito che cos’è uno script, perché non ho ancora capito cosa intendi per esso.

    Cioè, anche finendo di leggere tutto il post non ho ancora capito cosa è esattamente uno script.. meglio se finisco prima il minicorso di Python, che mi sembra più facile e completo.
    Per ora ho assimilato solo come eseguire dei commenti, ma l’avevo capito anche con Python.

    Boh.
    Dai, meglio se prima finisco il minicorso di Python, va’.
    Continuo comunque a seguire questo corso con piacere sempre, ma mi sono impantanato.

    • juhan  Il 24 aprile 2013 alle 13:55

      Si usa chiamare script, parola che in origine valeva per lista della spesa, copione per l’attore, promemoria, etc, un programma per un linguaggio meno impegnativo di C, Java, Fortran, Lisp e altri seriosi. Come quelli che vedi con la linea verticale verde che separa i numeri di riga dal testo. Si scrivono con un programma come il Blocco note di Windows e si eseguono con ruby nome.rb dove nome.rb è il nome del file in cui hai salvato lo script. Se hai ancora problemi contattami via email.

      • bakerstreetboy  Il 24 aprile 2013 alle 13:58

        Ecco, spiegami cos’è ruby nome.rb.
        Forse ho capito, grazie.

      • juhan  Il 24 aprile 2013 alle 14:04

        È il nome del file in cui hai scritto lo script. Nel post il primo, quello di una sola riga si chiama hw.rb, il secondo (17 righe) sc0.rb e poi gli altri sb.rb, err.rb e err-c.rb

Trackback

  • […] una lunga pausa nell’esame di Ruby. L’ultima puntata è stata questa, tanto tempo fa: Ruby – iniziamo con gli script. Ora ripaprto. E continuiamo a fare pratica con gli script. Dopo “Hello World!” sarebbe […]

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: