/ / Що означає цей синтаксис масиву в Ruby? - масиви, рубін, синтаксис

Що означає синтаксис масиву в Ruby? - масиви, рубій, синтаксис

Я щойно натрапив на цей код:

@board=Array.new(7){Array.new(7)}

Я ніколи не бачив цього синтаксису для масиву в rubyі я не міг багато чого знайти на ньому після обшуку. Я насправді не розумію, що відбувається з фігурними дужками тут. Я сподівався, що хтось може просто дати мені коротке пояснення. Дякую!

Відповіді:

3 для відповіді № 1

Блок-синтаксис new дозволяє ініціалізувати окремі елементи масиву, необов'язково на основі index номер. У вашому випадку індекс не використовується, але всі 7 елементів масиву ініціалізуються вкладеним масивом з також 7 елементів, тож ви отримуєте 7-матричну "матрицю".

Проілюструвати:

$ irb
irb(main):001:0> Array.new(7)
=> [nil, nil, nil, nil, nil, nil, nil]

$ irb
irb(main):001:0> require "pp"
=> true
irb(main):002:0> pp Array.new(7) {Array.new(7)}
[[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil]]