首页 > 解决方案 > 我应该将 ruby​​ 单行 if 语句拆分为多行 if 语句,因为该行很长吗?

问题描述

我有一个很长的 ruby​​ 单行语句,大约 200 个字符。根据ruby​​ style guide,单行 if 语句在这里更受青睐,因为正文是单行的。

address = Module::InnerModule::Class.new(long_address) if Module::Class.new(long_address).is_good? 

但是,200 个字符远远超过了通常的行长阈值(通常最多为 120)。我应该将 if 语句拆分为多行语句以减少行长(还是应该接受该行很长)?

if Module::Class.new(long_address).is_good? 
  address = Module::InnerModule::Class.new(long_address)

另外,如果分割后线路仍然很长怎么办?这里的最佳做法是什么?我是 Ruby 新手,所以我会很感激任何关于最佳实践的建议。

标签: rubycoding-style

解决方案


除了样式问题,如果您想保持当前语义,您可以在某些关键字和运算符处换行,而无需使用反斜杠转义换行符。例如:

address =
  Module::InnerModule::Class.new(long_address) if
    Module::Class.new(long_address).is_good?

否则,更改您的语义或重构您的代码以适合您所需的行长和选择的样式。关于如何拆分行的问题是可以回答的,但是拆分、缩进或重构的“最佳”方式在很大程度上是主观的,并且主要是可读性和意图的结合。


推荐阅读