如何将长的红宝石哈希分成多行?

Mic*_*ant 1 ruby hash rspec

我有这个哈希:

  arr={ [0,1]=>[0,0,1,1], [0,2]=>[0,1,0,1], [0,3]=>[0,1,1,0], [1,2]=>[1,0,0,1], [1,3] =>[1,0,1,0], [2,3] => [1,1,0,0] }
Run Code Online (Sandbox Code Playgroud)

我想把它分成两行,因为它很长,为121个字符。我不是线条长度的标签,但我的指导线是80,比我喜欢的更长

所以我尝试了

  arr={ [0,1] => [0,0,1,1], [0,2] => [0,1,0,1], [0,3] => [0,1,1,0] }
  arr.merge({[1,2] => [1,0,0,1], [1,3] => [1,0,1,0], [2,3] => [1,1,0,0]})
Run Code Online (Sandbox Code Playgroud)

但是我的测试失败了,并出现诸如

undefined method `[]' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

我该如何更好地分解?一种选择是连续行,\但看上去并不太整齐。

arr={ [0,1]=>[0,0,1,1], [0,2]=>[0,1,0,1], [0,3]=>[0,1,1,0], \
[1,2]=>[1,0,0,1], [1,3] =>[1,0,1,0], [2,3] => [1,1,0,0] }
Run Code Online (Sandbox Code Playgroud)

虽然我想我可以做

arr={ [0,1]=>[0,0,1,1], [0,2]=>[0,1,0,1], [0,3]=>[0,1,1,0], \
      [1,2]=>[1,0,0,1], [1,3] =>[1,0,1,0], [2,3] => [1,1,0,0] }
Run Code Online (Sandbox Code Playgroud)

但这看起来像是空白维护缩进的气味。

有更整洁的选择吗?

saw*_*awa 5

arr = {
  [0,1] => [0,0,1,1], [0,2] => [0,1,0,1], [0,3] => [0,1,1,0],
  [1,2] => [1,0,0,1], [1,3] => [1,0,1,0], [2,3] => [1,1,0,0]
}
Run Code Online (Sandbox Code Playgroud)


Bro*_*tse 5

我更愿意这样写:

arr = { 
  [0,1] => [0,0,1,1],
  [0,2] => [0,1,0,1],
  [0,3] => [0,1,1,0],
  [1,2] => [1,0,0,1],
  [1,3] => [1,0,1,0],
  [2,3] => [1,1,0,0] 
}
Run Code Online (Sandbox Code Playgroud)

它更具可读性。另外我假设您知道使用数组作为键的后果吗?