Как только у вас будет более двух частей информации, которую нужно сгруппировать, пришло время подумать о переходе от общего хеша / массива к чему-то более специализированному.Хорошим кандидатом на то, что вы описали, является struct
модуль Ruby :
Customer = Struct.new(:email, :name, :address) # etc.
bill = Customer.new('bill@asdf.com', 'Bill Foo', '123 Bar St.')
puts "#{bill.name} lives at #{bill.address} and can be reached at #{bill.email}"
Вывод:
Bill Foo lives at 123 Bar St. and can be reached at bill@asdf.com
Struct#new
просто создает класс сattr_accessor
для каждого символа, который вы передаете. Ну, на самом деле это создает немного больше, но для начала это все, о чем вам нужно беспокоиться.
Как только вы получите данные из каждой строкиупакованный в какой-либо объект (будь то struct
или ваш собственный класс), затем вы можете беспокоиться о том, как хранить эти объекты.
- Хеш будет идеальным для произвольного доступа по заданному ключу (возможно, имя клиента или другой уникальный идентификатор).
- Одномерный массив отлично работает для итерации по всему набору клиентов в одном и том жепорядок их вставки