使用范围迭代数组

Bra*_*and 3 ruby arrays

这就是我想要做的

a = [1, 2, 3, 4]
a[1] = 0
a[2] = 0
Run Code Online (Sandbox Code Playgroud)

一种方法是循环

(1..2).each { |x| x = 0 }
Run Code Online (Sandbox Code Playgroud)

有没有办法用范围或splats以某种方式做到这一点?就像是

a[(1..2)] = 0
Run Code Online (Sandbox Code Playgroud)

tai*_*nsu 5

a = [1, 2, 3, 4]
a[1..2] = [0] * 2
p a #[1, 0, 0, 4]
Run Code Online (Sandbox Code Playgroud)

你不能只a[1..2] = 0在第2行键入,因为数组a将成为[1, 0, 4]

  • `a [1..2] = 0,0`,`a [1,2] = 0,0`,`a [1..2] =*[0,0]` (3认同)