Ruby 显示长数组的样式
Ruby style for displaying long arrays
我正在使用 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]
这占用了很多 space,我认为我的方法更有效。
在 ruby 中显示多行数组的风格规则是什么?
Batsov 在 https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays 中对此进行了描述。看起来你的变体是正确的。也许您对 robocop
?
的默认规则进行了更改
关于一行结束的地方有不同的想法,所以我不讨论。
如果您要在列表中的项目之间更改行,我可以说的一件事是,您也应该在分隔符([
和 ]
在这种情况下)和 first/last 项目。不是:
....... [:foo,
:bar,
:baz]
但是:
....... [
:foo,
:bar,
:baz,
]
惯例是相对于分隔符的缩进级别将项目缩进两个空格。
另一个提示是在最后一项之后添加一个逗号,如上所示。虽然这是可选的,并且对代码没有影响,但这将使您以后更容易编辑列表(更改顺序、添加、删除项目等)。
在 v2.3 中,您将可以使用 Enumerable#tinyfy
:
p colors.tinyfy(1)
[:light_red, :red, :orange, :light_yellow, :yellow, :light_green, :light_blue, :blue , :白色, :黑色]
p colors.tinyfy(2)
[:light_red, :red, :orange, :light_yellow, :yellow, :light_green, :light_blue, :蓝色, :白色, :黑色]
p colors.tinyfy(3)
[:light_red, :red, :orange, :light_yellow, :yellow, :light_green , :light_blue, :blue, :white, :black]
p colors.tinyfy(4)
[:light_red, :red, :orange, :light_yellow, :yellow, : light_green, :light_blue, :blue, :white, :black]
p colors.tinyfy(10)
........
我正在使用 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]
这占用了很多 space,我认为我的方法更有效。
在 ruby 中显示多行数组的风格规则是什么?
Batsov 在 https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays 中对此进行了描述。看起来你的变体是正确的。也许您对 robocop
?
关于一行结束的地方有不同的想法,所以我不讨论。
如果您要在列表中的项目之间更改行,我可以说的一件事是,您也应该在分隔符([
和 ]
在这种情况下)和 first/last 项目。不是:
....... [:foo,
:bar,
:baz]
但是:
....... [
:foo,
:bar,
:baz,
]
惯例是相对于分隔符的缩进级别将项目缩进两个空格。
另一个提示是在最后一项之后添加一个逗号,如上所示。虽然这是可选的,并且对代码没有影响,但这将使您以后更容易编辑列表(更改顺序、添加、删除项目等)。
在 v2.3 中,您将可以使用 Enumerable#tinyfy
:
p colors.tinyfy(1)
[:light_red, :red, :orange, :light_yellow, :yellow, :light_green, :light_blue, :blue , :白色, :黑色]
p colors.tinyfy(2)
[:light_red, :red, :orange, :light_yellow, :yellow, :light_green, :light_blue, :蓝色, :白色, :黑色]
p colors.tinyfy(3)
[:light_red, :red, :orange, :light_yellow, :yellow, :light_green , :light_blue, :blue, :white, :black]
p colors.tinyfy(4)
[:light_red, :red, :orange, :light_yellow, :yellow, : light_green, :light_blue, :blue, :white, :black]
p colors.tinyfy(10)
........