0

我们可以找到Ruby方法的定义:Array#fill

前三种形式将self的选中元素(可能是整个数组)设置为obj。nil 的开始等于零。nil 的长度等价于 self.length。最后三个表格用块的值填充数组。该块被传递每个要填充的元素的绝对索引。从数组末尾开始计数的负值。

前三种形式做某事是什么意思?这些表格是什么?

4

2 回答 2

3

这是(几乎)官方文件的非官方且不完整的副本,其中有更完整的描述:

fill(obj) → ary
fill(obj, start [, length]) → ary
fill(obj, range ) → ary
fill {|index| block } → ary
fill(start [, length] ) {|index| block } → ary
fill(range) {|index| block } → ary

前三种形式将self的选中元素(可能是整个数组)设置为obj。nil 的开始等于零。nil 的长度等价于 self.length。最后三个表格用块的值填充数组。该块被传递每个要填充的元素的绝对索引。从数组末尾开始计数的负值。

所以“前三种形式”指的是:

fill(obj) → ary
fill(obj, start [, length]) → ary
fill(obj, range ) → ary

顺便说一句,v1_9_3_392 太旧了。为什么不使用更新版本的 Ruby?

于 2018-11-07T10:18:07.620 回答
1

以下是文档中的三个使用示例:

a.fill("x")              #=> ["x", "x", "x", "x"]
a.fill("z", 2, 2)        #=> ["x", "x", "z", "z"]
a.fill("y", 0..1)        #=> ["y", "y", "z", "z"]

此方法的行为与以下两个示例不同的地方,其中给出了块:

a.fill {|i| i*i}         #=> [0, 1, 4, 9]
a.fill(-2) {|i| i*i*i}   #=> [0, 1, 8, 27]
于 2018-11-07T10:13:36.373 回答