2009/11/19 Emmanuel Oga <[email protected]>:
>
>
> 2009/11/19 Silvio Quadri <[email protected]>
>>
>> El día 19 de noviembre de 2009 11:34, Emmanuel Oga
>> <[email protected]> escribió:
>> >
>> >
>> > 2009/11/19 lizzy ~* <[email protected]>
>> >>
>> >> On Thu, Nov 19, 2009 at 11:06 AM, Jürgen Feßlmeier
>> >> <[email protected]>
>> >> wrote:
>> >>>
>> >>> Estoy usando esta forma muchisimo tambien y es corecto, pero para
>> >>> otras
>> >>> es un poco mas dificil a ler que:
>> >>
>> >> si... yo apenas vi eso en el codigo [que no recuerdo quien lo escribio
>> >> ya]
>> >> dije "uuh... voy a ponerlo bien con =="
>> >> y luego me reventaba la aplicacion y no entendia nada jajaja luego cai,
>> >> asi que lo volvi a como estaba antes
>> >>
>> >>>
>> >>> foo = Bar.find(:all, :conditions => {:lol => 3})
>> >>> if foo
>> >>>   puts foo
>> >>> end
>> >>>
>> >
>> > Es muy comun encontrar eso. En ruby no luce tan mal, en gral es obvio
>> > que la
>> > intencion es asignar y chequear a la vez que el valor no sea nil o
>> > false. En
>> > otros lenguajes (como C) se recomienda no hacerlo por la razon que
>> > menciona
>> > lizzy. Personalmente trato de evitarlo siempre que puedo.
>> >
>> > En otro tema, cuando el if es de una sola linea me gusta mucho ponerlo
>> > despues del statement
>> >
>> > foo = Bar.find(:all, :conditions => {:lol => 3})
>> > puts foo if foo
>> >
>> > P.S.: haciendo un poco de nit-pick, si Bar es una clase ActiveRecord,
>> > ese
>> > check no sirve para nada. find o encuentra o explota. Si queres checkear
>> > por
>> > nil tenes que usar Bar#find_by_id.
>>
>> En este caso, devuelve un arreglo, el cual podría estar vacío. O sea
>> ... siempre se imprime foo
>
> ah! find(:all). Cierto, estaba pensando en find(id) :p
>
>>
>> Silvio
>> _______________________________________________
>> Ruby mailing list
>> [email protected]
>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
>
> --
> --------------------------------------------------------------
> EmmanuelOga.com - Software Developer
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>

A mi no me gusta mucho el idioma ese de asignar en el if, se puede dar
por error (estás comparando y sin querer asignaste porque no pusiste
== y quedó = ). Por eso 1.8.7 tira el warning, y el modo de Ruby de
emacs te lo marca como posible error al hacer el hilighting.

Algo así queda mejor para mi:

variable = blah(...) and begin
    puts "hola"
    ....
end
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a