JavaFree.org | RubyOnBr.org

Você consegue achar a duplicação aqui?

Acompanhar Você consegue achar a duplicação aqui? 8 posts, 5 participantes

Avatar Ronie Uliana 887 posts

Esse é uma versão simples de um método que eu vivo encontrando em quase todos os sistemas que já mexi, de Perl e VB, passando por Java e até Ruby. Várias vezes temos uma pequena lógica que retorna um “true” ou um “false”.

E aí? Dá pra perceber a duplicação? Quem manda uma versão refatorada?

(Testes inclusos, mas o método a ser refatorado é só o "equals_foo")

 
Avatar_h Shairon Toledo 1251 posts
 
Avatar_h Shairon Toledo 1251 posts

essa aqui é doida

 
252944301_5b97e49932_t herval 275 posts

putz, essa segunda opcao do Shairon eh pra arrancar os cabelos… :-)

 
Avatar Ronie Uliana 887 posts

A segunda opção entra na categoria “códigos obscuros que o homem não deveria saber que existem” :D

Eu defendo alguma dose de “magia negra” no código, desde que você consiga varrer ela pra bem debaixo do tapete e coloque um BEEEELO comentário.

Mas essa aí foi de pelar o saco com água quente.

 
Avatar_h Shairon Toledo 1251 posts

Eu não uso, apenas sei que existe. :>

 
Avatar Mereghost 789 posts

Voodoo brabo.

Um parâmetro opcional com um valor padrão definido por uma comparação e o método retorna o parâmetro opcional. O único problema é se passarem os dois parâmetros para o método.

 
Avatar Fagnasa 34 posts

Um…
Essa segunda opção do Shairon Toledo não é algo Tãããããão incompreensivel para o homem assim.
O metodo eq tem dois parametros, tendo o segundo com um valor defalt, que é o resultado de some == ‘foo’
Se some for == ‘foo’, ret sera true, se não ele será false.
Então, o metodo retorna o valor de ret.
Veja: