Я щойно натрапив на цей код:
@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]]