Salve a tutti!
qualcuno sa spiegarmi cosa vuol dire il seguente codice?
tmp=Hash.new(0)
for el in @lista
gra=tmp[el.aut][0]
dim=tmp[el.aut][1]
tmp[el.aut]=[el.gra+gra,el.dim+dim]
end
grazie a tutti!
Salve a tutti!
qualcuno sa spiegarmi cosa vuol dire il seguente codice?
tmp=Hash.new(0)
for el in @lista
gra=tmp[el.aut][0]
dim=tmp[el.aut][1]
tmp[el.aut]=[el.gra+gra,el.dim+dim]
end
grazie a tutti!
Ciao Njna
Njna N. wrote:
Salve a tutti!
qualcuno sa spiegarmi cosa vuol dire il seguente codice?
tmp=Hash.new(0)
crea un hash con valore di default 0
(cioe’ se accedi con una chiave che non esiste nell’hash, ti ritorna 0)
for el in @lista
gra=tmp[el.aut][0]
anche se tmp e’ vuota, tmp[…] ritorna 0,
e 0[…] ritorna 0 (mai saputo!)
dim=tmp[el.aut][1] tmp[el.aut]=[el.gra+gra,el.dim+dim]
end
somma gli elementi :gra e :dim della lista raggruppati per :aut
Es: Se
@lista = [
Struct.new(:aut => ‘italia’, :gra => 1, :dim => 10),
Struct.new(:aut => ‘francia’, :gra => 1, :dim => 20),
Struct.new(:aut => ‘italia’, :gra => 1, :dim => 10),
Struct.new(:aut => ‘francia’, :gra => 1, :dim => 15)
]
ottieni
tmp = { # gra, dim
‘italia’ => [2, 20],
‘francia’ => [2, 35]
}
ti ringrazio per la veloce risposta… la tua spiegazione è esauriente!
ma in parole povere come dovrei leggere queste due righe?
gra=tmp[el.aut][0] //gra è uguale a …
dim=tmp[el.aut][1]
tmp[el.aut]=[el.gra+gra,el.dim+dim]
questo vuol dire che l’hash tmp ha come chiave [el.aut] e come valori
[el.gra+gra,el.dim+dim]?
ancora grazie
Claudio Petasecca D. wrote:
Ciao Njna
Njna N. wrote:
Salve a tutti!
qualcuno sa spiegarmi cosa vuol dire il seguente codice?
tmp=Hash.new(0)
crea un hash con valore di default 0
(cioe’ se accedi con una chiave che non esiste nell’hash, ti ritorna 0)for el in @lista
gra=tmp[el.aut][0]anche se tmp e’ vuota, tmp[…] ritorna 0,
e 0[…] ritorna 0 (mai saputo!)dim=tmp[el.aut][1] tmp[el.aut]=[el.gra+gra,el.dim+dim]
end
somma gli elementi :gra e :dim della lista raggruppati per :aut
Es: Se
@lista = [
Struct.new(:aut => ‘italia’, :gra => 1, :dim => 10),
Struct.new(:aut => ‘francia’, :gra => 1, :dim => 20),
Struct.new(:aut => ‘italia’, :gra => 1, :dim => 10),
Struct.new(:aut => ‘francia’, :gra => 1, :dim => 15)
]
ottieni
tmp = { # gra, dim
‘italia’ => [2, 20],
‘francia’ => [2, 35]
}
ti ringrazio per la veloce risposta… la tua spiegazione è esauriente!
ma in parole povere come dovrei leggere queste due righe?gra=tmp[el.aut][0] //gra è uguale a …
dim=tmp[el.aut][1]
Ogni elemento dell’hash ha per chiave el.aut e per elemento un array
che contiene a sua volta 2 elementi: la somma degli el.gra e la somma
degli el.dim
gra e’ uguale al valore (temporaneo) della somma degli el.gra, calcolata
fino a quel momento.
Lo stesso per dim.
tmp[el.aut]=[el.gra+gra,el.dim+dim]
questo vuol dire che l’hash tmp ha come chiave [el.aut] e come valori
[el.gra+gra,el.dim+dim]?
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs