2

我有以下一段代码,我想知道它是否可以压缩为一行:

if self.id
  return if Party.find_by_id(self.id).name.downcase == self.name.downcase
end

我想知道是否无论如何都要在一行中有这个声明。

我知道你可以使用if statement ? then_statement : else_statement,但希望你能在这里看到没有别的东西。也许breakcontinue或类似的东西?(如果您看到它,请随意对实际代码进行优化 - 这几乎就是这里的目的)

4

2 回答 2

6

很简单,把它们塞在一起:)

return if self.id && Party.find_by_id(self.id).name.downcase == self.name.downcase
于 2012-04-15T16:39:29.573 回答
1

这些都是等价的:

if some_condition
    do_something
end

if some_condition; do_something; end

do_something if some_condition;

some_condition and do_something

但是,当然,您的示例已经使用了其中两个变体:)

于 2012-04-16T05:41:57.397 回答