JavaFree.org | RubyOnBr.org

Ignorando nil

Acompanhar Ignorando nil 5 posts, 3 participantes

Avatar na 17 posts

Existe alguma maneira de fazer isso:

Aonde, se alguma_coisa for nil ele não vai dar error, e sim retornar nil ou false.

 
Avatar Ronaldo 388 posts

seria algum como?

a = alguma_coisa.algum_metodo rescue nil

 
Avatar Shairon Toledo 1428 posts

Pode usar o method_missing fazendo mixin

Para classe utilize

Para instâncias

 
Avatar na 17 posts

O método existe, o objeto que não.

O que eu quero fazer por exemplo é:

<%= @cliente.nome || “Nenhum” %> Aonde, se @cliente for nil, vou imprimir “Nenhum”.

Hoje eu faço da maneira abaixo, mas queria saber se existe uma forma melhor… acho que já vi em algum lugar isso, por isso estou perguntando.

<%= @cliente ? @cliente.nome : “Nenhum” %>

 
Avatar Ronaldo 388 posts

Acho que o abaixo funcionaria:

O TaQ provavelmente poderia apontar se há alguma maneira mais econômica de fazer isso. O uso do operador ternário é mais legível na minha opinião. O uso do rescue é mais compacto, mas envolve todo o mecanismo de exceções, o que em termos de performance é péssimo.