我有这个哈希:
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)
但这看起来像是空白维护缩进的气味。
有更整洁的选择吗?
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)
它更具可读性。另外我假设您知道使用数组作为键的后果吗?