probabilmente chiesto già, ma non sono riuscito a trovarlo .. Qui ci sono 2 situazione comune (per me mentre le rotaie di programmazione ..) che sono frustranti di scrivere in Ruby:rubino zucchero sintattico: si tratta di Nils
"a string".match(/abc(.+)abc/)[1]
in questo caso viene visualizzato un errore perché la stringa non corrisponde, pertanto l'operatore [] viene chiamato su zero. Quello che mi piacerebbe trovare un posto più bello è un'alternativa al seguente:
temp="a string".match(/abc(.+)abc/); temp.nil? ? nil : temp[1]
in breve, se non corrisponde semplicemente restituire nil senza l'errore
La seconda situazione è questa:
var = something.very.long.and.tedious.to.write
var = something.other if var.nil?
in questo caso voglio assegnare qualcosa da VAR solo se non è pari a zero, nel caso in cui si tratta di nulla io assegnare something.other ..
Qualsiasi suggerimento? Grazie!
Ok Sono molto stanco Mi scuso per la seconda domanda che era stupido (sì, è un semplice O ..), il primo rimane interessante anche se .. – luca
realtà anche la seconda era interessante. In breve ho sbagliato, perché ho dimenticato la precedenza dell'operatore 'o'. L'uso improprio di 'or' è un passo falso piuttosto comune e vale la pena evidenziare. –
Questo è molto simile a questa domanda: http://stackoverflow.com/questions/4371716/looking-for-a-good-way-to-avoid-hash-conditionals-in-ruby/ – mpd