因此,在Ruby中,要使用另一个哈希作为默认值来创建一个哈希,可以使用:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
然后您可以深入两个层次:
Hash.new { |h, k| h[k] = {} }
如所期望的,哪个允许产生以下行为:
x = Hash.new { |h, k| h[k] = Hash.new { |h, k| h[k] = {} } }
我的问题是,是否有一种方法可以创建一个默认值为总是总是另一个哈希的哈希值。基本上,这相当于写下面*无穷大的东西:
x = Hash.new { |h, k| h[k] = Hash.new { |h, k| h[k] = {} } }
x['hi'] #=> x == {"hi"=>{}}
x['hi']['ho'] #=> x == {"hi"=>{"ho"=>{}}}
x['hi']['ho']['silver'] #=> returns nil, x remains the same
x['hi']['ho']['silver']['away'] #=> throws NoMethodError: undefined method `[]' for nil:NilClass
在上面的示例中,将发生以下情况:
Hash.new { |h, k| h[k] = Hash.new { |h, k| h[k] = Hash.new { |h, k| h[k] = Hash.new { |h, k| h[k] = { etc. } } } } }
我不确定我对此解释的程度如何,很高兴回答评论或接受修改。还没有看到重复的,如果有人问过,我很抱歉。有兴趣了解是否可以这样做-预先感谢您提供任何答案。