来自范围的Ruby哈希

met*_*hyl 2 ruby

我该怎么做:

hash = {}
(140..200).each {|n| h[n] = "#{n} cm"}
Run Code Online (Sandbox Code Playgroud)

但在一行返回整个哈希?我确信这是可能的,但我不知道如何;)

ctc*_*rry 9

你非常接近:

hash = (140..200).inject({}) {|h, n| h[n] = "#{n} cm"; h}
Run Code Online (Sandbox Code Playgroud)

  • 任何时候,`inject`是Enumberable的最佳功能之一,一旦我终于绕过它:) (2认同)