我坚持看似非常简单的问题。
如果我有一个交易数组[#<payer: "Robert", dollar: 100, cent: 10>]
totals = Hash.new(0)
transactions.each do |t|
totals[t.payer] += t.dollar
end
totals
上面的代码将返回{"Robert"=>100}
。我正在寻找的是更接近{"Robert" => { dollar: 100 }}
所以我尝试了
totals = Hash.new(0)
transactions.each do |t|
totals[t.payer][:dollar] += t.dollar
end
totals
但这会返回no implicit conversion of Symbol into Integer
错误。如果我将[:dollar]
更改为["dollar"]
,则会返回no implicit conversion of String into Integer
我问题的根源是什么?
答案 0 :(得分:2)
您将哈希条目初始化为if(getSupportActionBar() != null) {
getSupportActionBar().setElevation(0);
}
。您无法将数字0
编入索引。
如果您希望散列中的值是一个对象,那么您应该让每个散列条目成为新的散列0
,其中一种方式是:
{ dollar: 0 }