Несмотря на то, что было много вопросов по вложенным хэшам, я не нашел решения для моей проблемы.
Я тяну строки и сопоставляю каждый символ с хэшем, например:
numberOfChars = {}
string.each_char do |c|
RULES.each do |key, value|
if c === key
numberOfChars[value] += 1
end
end
end
Это работало нормально, и выводило что-то вроде "a появляется 3 раза", пока я не понял, что мой хеш должен быть вложенным, сродни этому:
RULES = {
:limb {
:colour {
'a' => 'foo',
'b' => 'bar'
},
'c' => 'baz'
}
}
Так как же мне получить 'лист "ключ, и это значение?
Хотя он выполняет итерации по хешу, ему также необходимо подсчитать, сколько раз появляется каждый ключ, например, «а» больше, чем «b»?Если это так, добавьте новый хэш.Но я довольно растерялся относительно того, как это будет работать на практике, не зная, как оно будет перебирать вложенный хеш для начала.
Мне кажется, это слишком запутанный способ сделать это, но еслиу кого-нибудь есть какие-нибудь указатели, которые они будут очень благодарны!
Кроме того, если это не до боли ясно, я новичок в Ruby, поэтому я, вероятно, делаю некоторые фундаментальные ошибки.