用于显示长数组的Ruby样式

用于显示长数组的Ruby样式,ruby,arrays,coding-style,Ruby,Arrays,Coding Style,我正在使用rubocop检查代码的样式约定是否符合最佳实践。我有一系列的颜色,想知道最好的方式来显示它们。我曾经读过,行的长度应该少于80个字符,所以我这样做了 colors = [:light_red, :red, :pink, :orange, :light_yellow, :yellow, :light_green, :green, :light_blue, :blue, :white, :black] 我从rubocop收到以下异常消息 C: Align the e

我正在使用
rubocop
检查代码的样式约定是否符合最佳实践。我有一系列的颜色,想知道最好的方式来显示它们。我曾经读过,行的长度应该少于80个字符,所以我这样做了

colors = [:light_red, :red, :pink, :orange, :light_yellow, :yellow,
          :light_green, :green, :light_blue, :blue, :white, :black]
我从rubocop收到以下异常消息

C: Align the elements of an array literal if they span more than one line
这是否意味着我应该做这样的事

colors = [:light_red,
          :red,
          :pink,
          :orange,
          :light_yellow,
          :yellow,
          :light_green,
          :green,
          :light_blue
          :blue,
          :white,
          :black]
这占用了很多空间,我觉得我的方式更有效


在ruby中显示多行数组的风格规则是什么。看起来你的变体是正确的。也许您对
robocop
的默认规则有所更改?

关于在哪里结束一行有不同的想法,所以我不讨论这一点

如果您要在列表中的项目之间更改行,我可以说的一件事是,您应该在分隔符字符(
[
]
)和第一个/最后一个项目之间也更改行。不是:

....... [:foo,
         :bar,
         :baz]
但是:

将项目缩进到与分隔符缩进级别相关的两个空格是一种惯例


另一个技巧是在如上所示的最后一项之后添加逗号。尽管这是可选的,并且对代码没有影响,但这将使您以后编辑列表(更改顺序、添加、删除项目等)更加容易。

在v2.3中,您可以使用
可枚举#tinyfy

p colors.tinyfy(1)
[:浅红色,:红色,:橙色,:浅黄色,:黄色,:浅绿色,:浅蓝色,:蓝色,:白色,:黑色]

[:浅红色,:红色,:橙色,:浅黄色,:黄色,:浅绿色,:浅蓝色,:蓝色,:白色,:黑色]

[:浅红色,:红色,:橙色,:浅黄色,:黄色,:浅绿色,:浅蓝色,:蓝色,:白色,:黑色]

[:浅红色,:红色,:橙色,:浅黄色,:黄色,:浅绿色,:浅蓝色,:蓝色,:白色,:黑色]


除了这一点,在这种情况下,您应该使用
%i
文字。我想补充的是,如果您使用第二种方法,那么您可以使用选项卡,而不管人们将选项卡宽度设置为什么,因为这看起来都是正确的。
p colors.tinyfy(1)
p colors.tinyfy(2)
p colors.tinyfy(3)
p colors.tinyfy(4)
p colors.tinyfy(10)