还有奖金:在Ruby代码“Hash.new {0}”中,“{0}”是什么?
{0}是一个块(匿名函数),它忽略其参数并返回数字0.当在哈希映射中找不到键时,将调用给予Hash.new的块来生成默认值.
即如果我做h = Hash.new {0},然后h [“不存在的键”],我会返回0,而不是nil(我没有{0}).请注意,在这种情况下,默认值是不可变的,并且不依赖于该键,您不需要使用Hash.new的块形式,您可以使用Hash.new(0)将0设置为默认值值.