Imagine o exemplo abaixo:
@page = params[:page] ? params[:page].to_i : 1
Ele pode ser escrito de maneiras diferentes:
@page = [params[:page].to_i, 1].max
@page = (params[:page] || 1).to_i
No entanto, o José Valim mostrou um método do Hash que eu não conhecia: fetch.
@page = params.fetch(:page, 1).to_i
Definitivamente, uma solução muito mais elegante que todas as outras! Para saber mais, veja a documentação.
- Permalink
- Trackback
- Comentários (4)
- Ao som de: The Toy Dolls – Spiders in the Dressing Room
Textos escritos por
Comentários #
Fiz um benchmark rápido avaliando as opções e o de fetch fou o melhor entre os quatro, tanto quando o hash contêm o valor, quando não tem.
http://gist.github.com/150863
Genial, Tino! Mais um motivo para usar
fetch!Æ!!
Muito legal Nando!
Valeu por compartilhar essa com a gente, o José Valim é coding machine! haha
Valeu pelo benchmark Tino! Acho que acabou de vez com as dúvidas de qual usar! :P
Há braços
Hehe, essa é uma das coisas que eu tive que procurar no Ruby, porque eu já uso dict.get(key, default) no Python (que aliás é Python idiomático, best practice e tal). Muito mais prático.
Deixe um comentário