Я использую Ruby 2.3.1, и я не могу сказать, встречался ли я с ошибкой или если это предполагаемое поведение.Нечеткое поведение с массивами Ruby?
Если создать матрицу NxN, делая вложенные массивы, как например:
matrix = [[0]*5]*5
, а затем установите элементы на диагоналях, как например:
(0..4).each {|i| matrix[i][i] = i}
это заканчивается влияет на каждый столбец в каждом ряду:
[
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]
]
Это намеренное поведение?
P.S. Я не хочу использовать библиотеку Matrix Ruby, но скорее буду работать с обычными массивами.
Заранее спасибо :)
Итак, это правильный способ сделать это: 'Array.new (n) {Array.new (n, 0)}', но не совсем уверен в деталях – DaniG2k
«Я нашел ошибку в компиляторе/интерпретатор/независимо »- это почти всегда ложно :) –
@ Серхио, это потому, что они обычно являются аппаратными ошибками. –