summaryrefslogtreecommitdiffhomepage
path: root/it-it/ruby-it.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'it-it/ruby-it.html.markdown')
-rw-r--r--it-it/ruby-it.html.markdown49
1 files changed, 29 insertions, 20 deletions
diff --git a/it-it/ruby-it.html.markdown b/it-it/ruby-it.html.markdown
index c082a987..cba636f5 100644
--- a/it-it/ruby-it.html.markdown
+++ b/it-it/ruby-it.html.markdown
@@ -80,8 +80,8 @@ false.class #=> FalseClass
2 <= 2 #=> true
2 >= 2 #=> true
-# Operatori di confronto combinati (ritorna '1' quando il primo argomento è più grande,
-# '-1' quando il secondo argomento è più grande, altrimenti '0')
+# Operatori di confronto combinati (ritorna '1' quando il primo argomento è più
+# grande, '-1' quando il secondo argomento è più grande, altrimenti '0')
1 <=> 10 #=> -1
10 <=> 1 #=> 1
1 <=> 1 #=> 0
@@ -218,7 +218,8 @@ hash['numero'] #=> 5
# Accedere all'hash con una chiave che non esiste ritorna nil:
hash['nothing here'] #=> nil
-# Quando si usano simboli come chiavi di un hash, si possono utilizzare queste sintassi:
+# Quando si usano simboli come chiavi di un hash, si possono utilizzare
+# queste sintassi:
hash = { :defcon => 3, :action => true }
hash.keys #=> [:defcon, :action]
@@ -245,8 +246,8 @@ else
end
#Cicli
-# In Ruby, i tradizionali cicli `for` non sono molto comuni. Questi semplici cicli, invece,
-# sono implementati con un enumerable, usando `each`:
+# In Ruby, i tradizionali cicli `for` non sono molto comuni. Questi semplici
+# cicli, invece, sono implementati con un enumerable, usando `each`:
(1..5).each do |contatore|
puts "iterazione #{contatore}"
end
@@ -297,8 +298,8 @@ end
# Esistono in Ruby ulteriori funzioni per fare i cicli,
# come per esempio 'map', 'reduce', 'inject' e altri.
-# Nel caso di 'map', esso prende l'array sul quale si sta iterando,
-# esegue le istruzioni definite nel blocco, e ritorna un array completamente nuovo.
+# Nel caso di 'map', esso prende l'array sul quale si sta iterando, esegue
+# le istruzioni definite nel blocco, e ritorna un array completamente nuovo.
array = [1,2,3,4,5]
doubled = array.map do |elemento|
elemento * 2
@@ -396,40 +397,43 @@ surround { puts 'hello world' }
# e gli permette di essere passato ad un altro metodo, legato ad uno scope
# differente o modificato. Questo è molto comune nella lista parametri del
# metodo, dove è frequente vedere il parametro '&block' in coda. Esso accetta
-# il blocco, se ne è stato passato uno, e lo converte in un 'Proc'. Qui la denominazione
-# è una convenzione; funzionerebbe anche con '&ananas'.
+# il blocco, se ne è stato passato uno, e lo converte in un 'Proc'.
+# Qui la denominazione è una convenzione; funzionerebbe anche con '&ananas'.
def guests(&block)
block.class #=> Proc
block.call(4)
end
-# Il metodo 'call' del Proc è simile chiamare 'yield' quando è presente un blocco.
+# Il metodo 'call' del Proc è simile allo 'yield' quando è presente un blocco.
# Gli argomenti passati a 'call' sono inoltrati al blocco come argomenti:
guests { |n| "You have #{n} guests." }
# => "You have 4 guests."
-# L'operatore splat ("*") consente di convertire una lista di argomenti in un array
+# L'operatore splat ("*") converte una lista di argomenti in un array
def guests(*array)
array.each { |guest| puts guest }
end
# Destrutturazione
-# Ruby destruttura automaticamente gli array in assegnamento a variabili multiple:
+# Ruby destruttura automaticamente gli array in assegnamento
+# a variabili multiple:
a, b, c = [1, 2, 3]
a #=> 1
b #=> 2
c #=> 3
-# In alcuni casi si usa l'operatore splat ("*") per destrutturare un array in una lista.
+# In alcuni casi si usa l'operatore splat ("*") per destrutturare
+# un array in una lista.
classifica_concorrenti = ["John", "Sally", "Dingus", "Moe", "Marcy"]
def migliore(primo, secondo, terzo)
puts "I vincitori sono #{primo}, #{secondo}, e #{terzo}."
end
-migliore *classifica_concorrenti.first(3) #=> I vincitori sono John, Sally, e Dingus.
+migliore *classifica_concorrenti.first(3)
+#=> I vincitori sono John, Sally, e Dingus.
# The splat operator can also be used in parameters:
def migliore(primo, secondo, terzo, *altri)
@@ -441,7 +445,8 @@ migliore *classifica_concorrenti
#=> I vincitori sono John, Sally, e Dingus.
#=> C'erano altri 2 partecipanti.
-# Per convenzione, tutti i metodi che ritornano un booleano terminano con un punto interrogativo
+# Per convenzione, tutti i metodi che ritornano un booleano terminano
+# con un punto interrogativo
5.even? #=> false
5.odd? #=> true
@@ -468,7 +473,8 @@ class Umano
def initialize(nome, eta = 0)
# Assegna il valore dell'argomento alla variabile dell'istanza "nome"
@nome = nome
- # Se l'età non è fornita, verrà assegnato il valore di default indicato nella lista degli argomenti
+ # Se l'età non è fornita, verrà assegnato il valore di default indicato
+ # nella lista degli argomenti
@eta = eta
end
@@ -482,7 +488,8 @@ class Umano
@nome
end
- # Le funzionalità di cui sopra posso essere incapsulate usando il metodo attr_accessor come segue
+ # Le funzionalità di cui sopra posso essere incapsulate usando
+ # il metodo attr_accessor come segue
attr_accessor :nome
# Getter/setter possono anche essere creati individualmente
@@ -517,7 +524,8 @@ dwight.nome #=> "Dwight K. Schrute"
# Chiamare un metodo della classe
Umano.say('Ciao') #=> "Ciao"
-# La visibilità della variabile (variable's scope) è determinata dal modo in cui le viene assegnato il nome
+# La visibilità della variabile (variable's scope) è determinata dal modo
+# in cui le viene assegnato il nome.
# Variabili che iniziano con $ hanno uno scope globale
$var = "Sono una variabile globale"
defined? $var #=> "global-variable"
@@ -534,8 +542,9 @@ defined? @@var #=> "class variable"
Var = "Sono una costante"
defined? Var #=> "constant"
-# Anche una classe è un oggetto in ruby. Quindi la classe può avere una variabile dell'istanza.
-# Le variabili della classe sono condivise fra la classe e tutti i suoi discendenti.
+# Anche una classe è un oggetto in ruby. Quindi la classe può avere
+# una variabile dell'istanza. Le variabili della classe sono condivise
+# fra la classe e tutti i suoi discendenti.
# Classe base
class Umano