如何解决为什么要避免在Ruby中使用then关键字?
| 在一些Ruby样式指南中都提到您应该“永远不要使用。”就我个人而言,我认为\“ then \”关键字使您可以使代码更密集,这往往更难阅读。此建议还有其他理由吗?解决方法
我几乎从不使用
then
关键字。但是,我认为有一种情况可以极大地提高可读性。考虑以下多条件if语句。
例子A
if customer.jobs.present? && customer.jobs.last.date.present? && (Date.today - customer.jobs.last.date) <= 90
puts \'Customer had a job recently\'
end
线长太长。难以阅读。
例子B
if customer.jobs.present? &&
customer.jobs.last.date.present? &&
(Date.today - customer.jobs.last.date) <= 90
puts \'Customer had a job recently\'
end
条件在哪里结束,内部代码在哪里开始。根据必须的Ruby Style Guides,您可以为多行条件留出一个缩进的额外空间,但是我仍然觉得所有这些都不容易阅读。
范例C
if customer.jobs.present? &&
customer.jobs.last.date.present? &&
(Date.today - customer.jobs.last.date) <= 90
then
puts \'Customer had a job recently\'
end
对我来说,示例C是最清楚的。正是通过使用“ 0”来达到目的。
,如果我没记错的话,then
只是将条件与真实部分分开的分隔符之一(分号和换行符是其他分隔符)
如果您有一个单行的if语句,则必须使用其中一个定界符。
if (1==2) then puts \"Math doesn\'t work\" else puts \"Math works!\" end
对于多行if,“ 0”是可选的(换行符有效)
if (1==2)
puts \"Math doesn\'t work\"
else
puts \"Math works!\"
end
您能张贴您提到的一种样式指南的链接吗?
,我认为“永不使用then
”是错误的。使用过多的非字母字符可能会使代码像perl或APL一样难以阅读。使用自然语言单词通常会使程序员更加自在。它取决于代码的可读性和紧凑性之间的平衡。三元运算符有时很方便,但如果使用不当,则很难看。
,\“ then \”关键字实际上并没有在ruby中添加任何内容,它只是使if语句更具说服力。 Ruby的“ then \”是从Ada借来的,而Ada是从Algol 68借来的。
永远不要使用
相反,没有理由不这样做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。