任何一个可以告诉我为什么以下:红宝石注入初始是一个哈希
['a', 'b'].inject({}) {|m,e| m[e] = e }
引发错误:
IndexError: string not matched
from (irb):11:in `[]='
from (irb):11:in `block in irb_binding'
from (irb):11:in `each'
from (irb):11:in `inject'
from (irb):11
from C:/Ruby192/bin/irb:12:in `<main>'
,而下面的作品?
a = {}
a["str"] = "str"
是否有必要在最后加入m?例如,如果块是'{| array,(k,v)|“数组<< << MyObject.new(k,v)}'会起作用吗?考虑到'array。<<'返回数组。 – Ziggy 2012-10-10 01:13:31
@Ziggy:是的,这是必要的,因为赋值'hash [key] = value'返回'value',你需要'hash'。 – tokland 2012-11-10 18:53:28