-3

你觉得哪个更漂亮更干净?

1)

subscription && subscription.update_attributes(subscription_hash)
subscription

2)

subscription.tap { |s| s && s.update_attributes(subscription_hash) }

3)

subscription.tap do |sub|
  sub.try(:update_attributes, subscription_hash)
end

4)

subscription.try(:update_attributes, subscription_hash) ? subscription : nil

请投票或其他...

4

3 回答 3

2

我会说#4

subscription.try(:update_attributes, subscription_hash) ? subscription : nil

阅读和理解imo要容易得多

于 2013-10-25T13:39:59.520 回答
2

我会使用 #1 因为它的直接性或 #4 因为它是一个合理可读的单行。

@Stefan - 你的代码很好,但无效。它会失败subscription == nil,这似乎对这个问题很重要

于 2013-10-25T13:59:42.827 回答
1

我会说#1

subscription && subscription.update_attributes(subscription_hash)
subscription
于 2013-10-25T13:44:04.767 回答