有人能给我详细解释一下这个Ruby块中发生了什么吗?

有人能给我详细解释一下这个Ruby块中发生了什么吗?,ruby,block,Ruby,Block,学习Ruby。需要创建数组散列。这很有效。。。但我不太明白Ruby在做什么。有人能详细解释一下吗 months = Hash.new{|h, k| h[k] = []} 这将使用构造函数创建一个散列,其项默认为空列表。因此,您可以这样做: months[2012] << 'January' months[2012]这使用构造函数创建一个散列,其项目默认为空列表。因此,您可以这样做: months[2012] << 'January' monds[2012]你能解释一

学习Ruby。需要创建数组散列。这很有效。。。但我不太明白Ruby在做什么。有人能详细解释一下吗

months = Hash.new{|h, k| h[k] = []}
这将使用构造函数创建一个散列,其项默认为空列表。因此,您可以这样做:

months[2012] << 'January'
months[2012]这使用构造函数创建一个散列,其项目默认为空列表。因此,您可以这样做:

months[2012] << 'January'

monds[2012]你能解释一下{}和管道之间发生了什么吗。。抱歉,Ruby新手。@Rick:尝试添加一些解释,也许这对你有帮助。谢谢@niklas,这很有帮助。你能解释一下{}和管道之间发生了什么吗。。很抱歉刚接触Ruby。@Rick:尝试添加一些解释,也许这对您有帮助。谢谢@niklas,这确实很有帮助。
{{124;…|…}
是一个块,有点像其他语言(如JavaScript)中的匿名函数,管道之间的内容是块的参数。因此,
{a,b{a+b}
有点像JavaScript中的
函数(a,b){return a+b}
,再加上一个用于与js进行比较的函数。
{124;…|…}
是一个块,有点像其他语言(如JavaScript)中的匿名函数,管道之间的内容是块的参数。所以
{a,b | a+b}
有点像JavaScript中的
函数(a,b){returna+b}
,加上一个用于与js进行比较。