我目前有一个可以使用 +=1 为自身增值的哈希
@hash = Hash.new { |hash, key| hash[key] = Hash.new(0) }
@hash[string1][string2] += 1
这将返回一个看起来像这样的哈希:
@hash = {string1 => {string2 => 1 }}
每次迭代相同的字符串值时,该整数值都会增加一。
现在我需要向哈希添加另一个值,所以它看起来像这样......
@hash = {string1 => {string2 => {string3 => 1}}}
并以相同的方式增加该数字。
不幸的是这段代码:
@hash = Hash.new { |hash, key| hash[key] = Hash.new(0)}
@hash[string1][string2][string3] += 1
返回错误提示“无法将字符串转换为整数”。我有一种感觉,这是因为添加了一个元素,并且我有 Hash.new(0),所以它在我有一个字符串的地方期待一个整数。那是对的吗?
我将如何设置此哈希以便它可以处理额外的维度并且仍然在最后执行 += 1 以便值增加?
谢谢。