Возможно, возникли проблемы с рефакторингом case case в одну строку, так как все другие решения, которые вы видели до сих пор, определенно не одни.
Если ваш истинный вопрос заключается в том, как реорганизовать этот код (в отличие от того, чтобы перетащить его в одну строку), то создание экземпляра хэша, как указывали другие, станет для вас способом. Вам все еще нужно заявление if
, чтобы вытащить ключи из этого хэша. Так что, возможно, что-то вроде:
name = "Tom"
people = {"Tom" => 1, "Bob" => 1}
if name == "Tom"
puts people.fetch("Tom") # Results in 1
end
Если имя каждого будет равна 1
, хотя, вы могли бы сделать что-нибудь неприятное, как это:
if name == "Tom" || name == "Bob" || name == "Harry" then a = 1 end
Опять же, это немного непонятно, что вы ищете в противном случае вы могли бы получить от нас более качественные ответы, пытаясь помочь. Имеет ли значение назначение букв хотя (например, a = 1
необходим против b = 1
)? Если это так, это может изменить ответ.
Просьба уточнить ваш вопрос, если это не поможет вам на 100%.
не очень уверен, что вы имели в виду там, но вы можете сделать Hash как этот '{«Bob»=> 1,«Джо»=> 1,«Томь "=> 1, ..}' и использовать 'hash [key]' для получения значений – shivam
Итак, в зависимости от определенного значения вы присваиваете что-то в разные переменные? У меня есть сильное чувство, что для этого требуется немного более высокий уровень рефакторинга, который влияет на код вне данного фрагмента. –
@ D-side вы, возможно, были правы, я просто думал, что, поскольку в конце, какая бы ни была выбрана переменная, она равна той же ценности, что и у нее есть способ «рубиновой магии». – warchildx4