У меня есть хэш следующим образом:рубин, если хэш-ключи включают текст, возвращать хэш ключа
hash = {2013 => 'one', 2014 => 'two'}
и переменной number
:
number = 13
мне нужно искать через все мои хэш-ключи, и если number
включен в ключ, мне нужно вернуть этот ключ. Сейчас у меня есть это:
if hash.keys.any? {|k| k.include? number}
#do some work
end
Это работает, но я на самом деле нужно, чтобы вернуть k
в том случае, k
действительно включает number
, а не просто проверить его. Как я могу написать это легко в блочном формате «if», как указано выше.
Вы хотите, чтобы проверить, содержит ли строковое представление ключа строковое представление числа? – Chuck
ваш фрагмент выдает сообщение об ошибке (string vs fixnum). Посмотрите на Array.find:'hash.keys.find {| k | k.to_s.include? number.to_s} ' – mestachs
@ Чак точно. – Luigi