У меня есть строка, представляющая последовательность ключей во вложенном хэше в следующем формате:
keys = 'key1[key2]'
и вложенный хеш с соответствующими ключами, например:
hash = {key1: {key2: 'value'}}
Есть ли способ получить значение из этого хэша напрямую, как показано ниже?
value = hash[keys]
Или мне нужно написать свою собственную логику?
Можете привести пример трехуровневой вложенности? Будет это 'key1[key2][key3]'
или 'key1[key2[key3]]'
?
ключ1 [ключ2] [ключ3]
Чтобы ответить на ваш конкретный вопрос, Нет, нет способа (насколько мне известно) получить значение из хеша напрямую, передав вашу строку ввода.
Вам нужно будет написать свою собственную логику, чтобы извлечь ключи из строки, а затем получить значение.
hash.dig(*keys.delete(']').split('[').map(&:to_sym))
Вы должны написать часть своей собственной логики, чтобы справиться с этим.