mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-01-16 21:18:40 +01:00
cut lines over 80 chars
This commit is contained in:
parent
e3ae8a048f
commit
60377c4ee1
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user