哈希内的引用

时间:2018-09-28 00:18:38

标签: ruby hash

我有一个哈希:

test = {
  :key1 => "Test",
  :key2 => "Test2",
  :key3 => REF TO KEY1
}

是否可以让key3引用key1值?

2 个答案:

答案 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]
相关问题