как вызвать элемент многомерного массива в ruby - PullRequest
1 голос
/ 13 апреля 2011

У меня есть такой массив

i = 0
lines.each do |l|
  array[i] = l.split(',')
  i+=1
end

, и я хочу вызвать $array[1][3] как в php, но это не сработало.Я уже несколько часов гуглю и не могу найти решение.

Ответы [ 2 ]

2 голосов
/ 13 апреля 2011

Прежде всего, несколько улучшений в вашем коде:

# initialize your vars
array = []
lines.each do |l|
  array << l.split ',' # use the << operator
end

Теперь в рубине символ доллара для массивов не требуется, он обозначает глобальные переменные, и их использование нецелесообразно.

Вы должны получить доступ к вашей переменной следующим образом: array[1][3].

Вы можете сделать свой код однострочным в ruby1.9:

array = lines.each_line.map {|l| l.split ',' }
0 голосов
/ 13 апреля 2011

Если ваша проблема в том, что вызов array[6][3] возвращает что-то вроде Error: method [] undefined for nil, тогда сделайте это вместо:

array[6].to_a[3]

Всякий раз, когда строка (6) или столбец (3) выходит за пределы диапазона, возвращается nil. to_a гарантирует, что даже когда строка выходит за пределы диапазона, он все равно дает пустой массив, чтобы поиск столбца не возвращал ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...