Ruby初学者 - 哪些条件语句最好?

时间:2011-11-02 08:21:30

标签: ruby

if !store.url.nil? and store.url != store.new_data.url

OR

if ! store.url.nil? && store.url != store.new_data.url

OR

if (!store.url.nil? && store.url != store.new_data.url)

主要项目我想获得建议:

  1. 在轰炸之后放一个空格会更好吗?

  2. && - 或 -

  3. || - 或 -

3 个答案:

答案 0 :(得分:4)

您必须始终使用“&&”或“||”在布尔语句中。

“和”和“或”应该用于控制流程,如if或除非。

如果你在Rails工作,你也可以

if store.url.present? && store.new_data.url != store.url

在否定感叹号后不要留空格。 willy nilly使用括号在一般的ruby编码约定中是不受欢迎的,所以如果可以,请避免使用。

答案 1 :(得分:3)

我写道:

if store.url && store.url != store.new_data.url

(如果空白网址字符串被视为“零”值,请写store.url.present?

注意:

  • 除非您明确要区分nil?nil(这是Ruby中唯一的错误值),否则请勿使用false。这些案件很少见。

  • 爆炸后没有空格。

  • 使用更加惯用的&& / ||而不是and / or

  • 不要写一个覆盖完整的if / unless表达式的括号,它们在Ruby中是不必要的(而不是惯用语)。

答案 2 :(得分:0)

我会这样做: if store.url and store.url != store.new_data.url 或(如果您使用的是Rails或Ruby 1.9) if store.try(:url) != store.new_data.url

请记住,nil在Ruby中是假的。