以下是目前我拥有的内容,它在某种程度上正在发挥作用:
def padding(a, b, c=nil)
until a[b-1]
a << c
end
end
这是正常运作时的情况:
a=[1,2,3]
padding(a,10,"YES")
=>[1, 2, 3, "YES", "YES", "YES", "YES", "YES", "YES", "YES"]
a[1,2,3]
padding(a,10,1)
=>[1, 2, 3, 1, 1, 1, 1, 1, 1, 1]
但是当我没有为 "c" 输入一个值时,它会崩溃
a=[1,2,3]
padding(a,10)
Killed
我应该如何追加以避免崩溃? 此外,您建议如何更改此方法以便按以下方式使用:
[1,2,3].padding(10)
=>[1,2,3,nil,nil,nil,nil,nil,nil,nil]
[1,2,3].padding(10, "YES")
=>[1, 2, 3, "YES", "YES", "YES", "YES", "YES", "YES", "YES"]
我在SO上看到了其他的填充方法,但它们似乎不能按照作者的意图正常工作。因此,我决定自己尝试制作。
[1,2,3].padding(10, "YES")
来表示 OP 所要求的,可以使用#fill
=>[1, 2, 3].fill('YES', 3...10)
,其中 3 可以被替换为Array#length
。 - nishu