如果给定了一个哈希值:
AppConfig = {
'service' => {
'key' => 'abcdefg',
'secret' => 'secret_abcdefg'
},
'other' => {
'service' => {
'key' => 'cred_abcdefg',
'secret' => 'cred_secret_abcdefg'
}
}
}
我需要一个函数,有时返回service/key,有时返回other/service/key。一种简单直接的方式是传入哈希和键数组,如下所示:
def val_for(hash, array_of_key_names)
h = hash
array_of_key_names.each { |k| h = h[k] }
h
end
为了使此调用结果为“cred_secret_abcdefg”:
val_for(AppConfig, %w[other service secret])
看起来应该有比我在val_for()中编写的更好的方法。