Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Ruby Diary #04: Primi passi in Ruby

I primi passi in Ruby: cominciamo a scrivere una classe ed eseguire alcune elaborazioni di prova.
I primi passi in Ruby: cominciamo a scrivere una classe ed eseguire alcune elaborazioni di prova.
Link copiato negli appunti

Siete pronti a passare all'azione e scrivere le vostre prime righe in Ruby?

Spero che comprenderete la mia decisione di tralasciare i preamboli, dopo tutto questa non è una guida convenzionale a Ruby o Rails, per le quali rimando volentieri alla Guida Ruby e Guida Ruby on Rails pubblicate su HTML.it. In aggiunta, non scordatevi che per comprendere al meglio quanto seguirà  sarà  necessario tenere sempre sotto mano le risorse presentate nel primo post e la documentazione di Ruby.

Dunque, per cominciare a scrivere le vostre prime righe dovete almeno aver scelto un editor ed installato Ruby sul vostro computer. Come anticipato, questi primi post non tratteranno ancora l'argomento Rails sebbene siano comunque in tema poiché Rails... è Ruby!

In Ruby, lo ribadisco, ogni elemento è un oggetto. Esistono 4 oggetti fondamentali da tenere a mente:

  1. Il modulo Kernel, il cuore del linguaggio
  2. La classe Object, l'oggetto genitore di qualsiasi classe e modulo in Ruby
  3. La classe Module
  4. La classe Class

Non preoccupatevi troppo di conoscere ogni singola funzione di questi elementi, per ora. Preoccupatevi tuttavia di dare uno sguardo alle loro caratteristiche accedendo ai link sopra riportati.

Ovviamente Ruby integra tra le altre cose le variabili, così come i tipi di dato. Ogni tipo di dato in Ruby è un oggetto: String, Numeric, Integer, Array, Hash e via dicendo...

Bene, ora siete veramente pronti. Cominceremo con qualcosa di semplice. Creiamo la nostra prima classe.

# Classe persona
class Person
    def initialize(name = "Anonymous")
        @name = name
    end
    def ciao()
        puts "Ciao #{@name}"
    end
end
# Istanzio la classe
weppos  = Person.new("weppos")
guest   = Person.new()
# I miei ospiti sono educati, sanno anche salutare
weppos.ciao
guest.ciao()

Banale? Sì, ma abbastanza complessa da permetterci di analizzare un po' di basi del linguaggio che ci torneranno utili. Potete scrivere questo mini programma in un file, ad esempio person.rb ed eseguirlo via

percorso/interprete/ruby person.rb

oppure via IRB, interactive ruby shell.

Osservazioni generali

La prima cosa che mi è saltata all'occhio di Ruby è che non richiede l'uso del punto e virgola ";" come carattere di terminazione del comando.
Il ritorno a capo è sufficiente, a meno di non voler spezzare più esecuzioni sulla stessa riga.

puts "Mi chiamo "; puts "weppos" #=> weppos

La scrittura del codice, intesa come spazi e tabulazioni, non è vincolante come per esempio in Python, tuttavia ci sono delle convenzioni (le vedremo in futuro) che è bene mantenere.

I metodi possono essere invocati con o senza parentesi, ad esempio:

puts "Ciao #{@name}"
puts("Ciao #{@name}\n")

La stessa regola vale per i metodi senza argomenti:

weppos.ciao
weppos.ciao()

I commenti in Ruby sono preceduti da #. Non esistono ufficialmente commenti multi linea (sebbene esista ==begin è poco utilizzato... praticamente non l'ho mai visto scritto!).

Definire una classe ed un metodo

Come potete vedere, le classi vengono definite con la sintassi class NomeClasse.

Per ogni classe possono essere inseriti metodi, definibili via def nome_metodo.
initialize è un metodo speciale poiché rappresenta il costruttore della classe.

Per istanziare una classe, a differenza di altri linguaggi, la sintassi è tipicamente object oriented. Il metodo new viene chiamato sulla classe passando al costruttore i parametri desiderati.

Per ora non preoccupatevi troppo della differenza tra @name e name. Vi basti sapere che la prima rappresenta una variabile d'istanza, la seconda una variabile del metodo.

Stampa del valore

Per stampare a video il valore della nostra stringa abbiamo utilizzato il metodo puts appartenente all'oggetto Kernel. Inoltre, la stringa passata al metodo puts è particolare poiché racchiusa tra virgolette " e racchiude al suo interno una valutazione real time di una variabile.

Infatti, la sintassi #{nomevariabile} causa la valutazione della variabile indicata e la sostituzione con il reale valore. In PHP avrei scritto echo "$variabile".

Ed ora che facciamo?

Potrei andare avanti un mese a scrivere Hello World o script simili ma credo che siano poco divertenti a meno che non vogliate trovarvi sul PC un Hello World danzante ogni volta che avviate il sistema operativo. Così, continuando sul filone del diario, vi renderà partecipe (virtualmente e parzialmente per ovvie ragioni aziendali) di un progetto che sto seguendo.

Si tratta di una piattaforma in Rails, che include tra l'altro diversi mini progetti interessanti come librerie per interagire con webservice, metaprogrammazione, XML, HTTP Client e cosucce del genere. Buona parte dei post sarà  organizzata cercando di fornire un mix tra basi teoriche, script e suggerimenti che si sono resi necessari nel corso dello sviluppo del progetto e delle sue classi.

Con un banale script avete visto come definire classi, metodi, istanziare oggetti e chiamare metodi stampando valori in output. Non male per dieci righe di codice. Immaginate cosa significhi avere a che fare con un progetto reale ed esigenze reali.
Insomma, un progetto vero è più interessante di Hello World, no?

Ti consigliamo anche