У меня есть несколько классов, которые имеют следующие две хеш-таблицы. Оба сопоставления должны иметь одинаковый набор ключей. Моя проблема в том, что существует много классов с этой структурой, и что наборы ключей со временем изменятся.
mapping_1 = {
:key_1 => "attr_1_1",
:key_2 => "attr_2_1",
:key_3 => "attr_3_1"
}
mapping_2 = {
:key_1 => "attr_1_2",
:key_2 => "attr_2_2",
:key_3 => "attr_3_2"
}
Мне нужно иметь доступ к значениям, заданным ключами для сопоставлений и ключом из значения с сопоставлением 1. Другими словами, мне нужно иметь возможность выполнять следующие операции:
mapping_1[:key_1]
mapping_1.index("attr_2_1") #(Ruby 1.8.7)
mapping_2[:key_3]
Вопрос: Есть ли способ, при котором мне не пришлось бы дублировать написание ключей в обеих структурах?
Я думал о том, чтобы иметь карту ключей для массива (:key_1 => ["attr_1_1", "attr_1_2"]
), но это не сработает, потому что когда я запускаю команду mapping_1.index()
, я не знаю, каково значение второго атрибута.