ruby 填充数组
ruby padding an array
当我从我的 rspec 文件中 运行 我的代码时,我收到以下错误:
pad pads element to the end of an array
Failure/Error: expect(pad(array,array.length + pad_size, 'apple')).to eq(array+Array.new(pad_size, 'apple'))
expected: ["apple", "apple", "apple",...]
我当前的代码是:
def pad!(array, min_size, value = nil) #destructive
difference = min_size-array.length
difference.times {array << value}
array
end
def pad(array, min_size, value = nil) #non-destructive
difference = min_size-array.length
difference.times {array << value}
array.clone
end
谁能帮我弄清楚为什么会给我这个错误信息?我认为 {array << value } 正在将新元素添加到我的数组输入的末尾。谢谢!
你的非破坏性版本实际上是破坏性的。你想要的大概是这样的:
def pad(array, min_size, value = nil)
pad!(array.clone, min_size, value)
end
两次实施相同的行为没有意义。架起一座桥。
当我从我的 rspec 文件中 运行 我的代码时,我收到以下错误:
pad pads element to the end of an array
Failure/Error: expect(pad(array,array.length + pad_size, 'apple')).to eq(array+Array.new(pad_size, 'apple'))
expected: ["apple", "apple", "apple",...]
我当前的代码是:
def pad!(array, min_size, value = nil) #destructive
difference = min_size-array.length
difference.times {array << value}
array
end
def pad(array, min_size, value = nil) #non-destructive
difference = min_size-array.length
difference.times {array << value}
array.clone
end
谁能帮我弄清楚为什么会给我这个错误信息?我认为 {array << value } 正在将新元素添加到我的数组输入的末尾。谢谢!
你的非破坏性版本实际上是破坏性的。你想要的大概是这样的:
def pad(array, min_size, value = nil)
pad!(array.clone, min_size, value)
end
两次实施相同的行为没有意义。架起一座桥。