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.

Comentários #

#1 Tino Gomes disse:
20 Jul 09, 05:11PM

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

#2 Nando Vieira disse:
21 Jul 09, 12:40AM

Genial, Tino! Mais um motivo para usar fetch!

#3 PotHix disse:
21 Jul 09, 09:40AM

Æ!!

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

#4 Jonas Galvez disse:
21 Jul 09, 01:09PM

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





Não é aceito código HTML: adicione-o no pastie.org ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.

JavaScript Avançado

O JavaScript é a única linguagem que muitos acreditam saber sem nunca terem parado para realmente aprendê-la. Neste workshop rápido você entenderá de verdade todos os conceitos avançados do JavaScript em 4 horas puramente práticas.

Saiba mais Fechar

Conheça também o HOWTO