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)
主要项目我想获得建议:
在轰炸之后放一个空格会更好吗?
&& - 或 - 和
|| - 或 - 或
答案 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中是假的。