【发布时间】:2010-05-27 21:20:39
【问题描述】:
我与一位同事争论在 if..else 块中分配变量的最佳方法。他的原始密码是:
@products = if params[:category]
Category.find(params[:category]).products
else
Product.all
end
我是这样重写的:
if params[:category]
@products = Category.find(params[:category]).products
else
@products = Product.all
end
这也可以使用三元运算符 (? :) 用单行符重写,但让我们假设产品分配超过 100 个字符并且不能放在一行中。
这两者中哪一个对你来说更清楚?第一个解决方案占用的空间少一点,但我认为声明一个变量并在三行之后分配它可能更容易出错。我也希望看到我的if 和else 对齐,让我的大脑更容易解析它!
【问题讨论】:
-
我不是 Ruby 程序员,但我希望您可以将三元运算符(或任何)表达式延伸到多行。
-
所有以 “我不是 Ruby 程序员,但是……” 开头的答案是什么? 那好吧,不要回答这个问题。我知道这是 5 年前问的……但在 Rails 2.0 大受欢迎之后仍然如此。老实说,我不赞成以道歉开头的所有内容。
标签: ruby coding-style