Допустим, у меня есть текстовый файл, как это:Ruby: массив хэшей из текстового файла
1 2 3
4 5 6
7 8 9
...
Я хочу, чтобы прочитать его в структуру данных, как это:
h[1] = { "a" => 1, "b" => 2, "c" => 3 }
h[2] = { "a" => 4, "b" => 5, "c" => 6 }
h[3] = { "a" => 7, "b" => 8, "c" => 9 }
На первый взгляд кажется легким. Я использую:
lines=File.read(ARGV[0]).split("\n")
h=[]
lines.each (|x| h << x.split())
И полностью застрял в этой точке. Как преобразовать h в массив хешей?
+1 хороший ответ! – alfasin
Вы сделали это немного сложнее, чем нужно. 'File.readlines' уже выполняет разделение на строки новой строки (и работает в Windows). 'split' разбивается на пробелы без каких-либо аргументов. – Max
Спасибо @Max. Добавляем это. Обратите внимание, что 'File.readlines' оставляет' \ n' в конце каждой строки, но 'to_i' отбрасывает его – Christian