更惯用的 Ruby 编写方式是什么?
if params[:parent_type] == "Order"
parent_id = nil
else
parent_id = params[:parent_id]
end
Ruby 人会因为我这样写而嘲笑我吗?它看起来并不像我见过的一些 Ruby 代码那样特别简洁。
if params[:parent_type] == "Order"
parent_id = nil
else
parent_id = params[:parent_id]
end
Would a Ruby person laugh at me for writing it this way? It doesn't seem particularly concise like some Ruby code I've seen.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这对我来说看起来完全合理。您可以将赋值移到 if (
parent_id = if params...
) 前面或使用三元,但我认为结果不会更好。如果该行之前parent_id为零或未定义,您可以简单地编写:
That looks perfectly reasonable to me. You could move the assignment in front of the if (
parent_id = if params...
) or use the ternary, but I don't think the result would look better.If parent_id is nil or undefined before that line you can simply write:
按原样来说并没有什么问题,但可以变得更简洁:
或者:
Nothing really wrong with it as-is, but can be made more concise:
Alternatively:
我认为这样就很好。我是一个 Ruby 人,我不会因为你这样写而嘲笑你。代码的作用很清楚,并且没有真正的代码重复,所以我不会担心它。
I think it's fine the way it is. I'm a Ruby person, and I wouldn't laugh at you for writing it that way. It's clear what the code does and there's no real code duplication, so I wouldn't worry about it.
我喜欢:
I like:
另一种变化:
One more variation:
我们可以使用 Ruby 三元运算符。类似的东西:
如果
parent_id
设置为nil
值,我们可以编写一个 except 语法:或者以不同的方式编写一个简单的 Ruby if-else
:更多惯用的 Ruby 编码方式,我发现了一篇关于此的很棒的文章 。
We can use Ruby ternary operator. Something like it:
If
parent_id
is set withnil
value, we can write an unless syntax:Or write a simple Ruby if-else in a different way you did it:
For more Idiomatic Ruby way to code, I found an awesome article about that.