我有一个哈希:
test = {
:key1 => "Test",
:key2 => "Test2",
:key3 => REF TO KEY1
}
是否可以让key3
引用key1
值?
答案 0 :(得分:1)
实际上不建议这样做,我的猜测是there is a better way to solve whatever larger problem you are attempting to solve with this technique。
但是您可以执行的一种方法是创建一个Hash
,如果传递了:key1
,则default_proc
会返回:key3
的值。
> test = Hash.new { |h,k| k == :key3 ? h[:key1] : nil }
> test[:key1] = "Test"
> puts test[:key3]
Test
这可以作为参考,如果我们修改:key1
> test[:key1] = "Test2"
> puts test[:key3]
Test2
答案 1 :(得分:1)
是的,这很容易做到。值的表达式可以是任意的Ruby表达式,当然包括从Hash
访问值:
test = {
:key1 => "Test",
:key2 => "Test2",
}
test[:key3] = test[:key1]