Ruby on rails Ruby代码格式-Ruby代码格式的含义是什么?

Ruby on rails Ruby代码格式-Ruby代码格式的含义是什么?,ruby-on-rails,ruby,Ruby On Rails,Ruby,这在Ruby中意味着什么?为什么要给现有的散列值分配相同的值 Proc.new { |message| { 'field1' => message.field1, 'field2' => message.field2.to_s, 'field3' => message.field3,, 'field4' => message.field4.to_s,, } } 上述结构的含义是什么?为什么在散列中分配了相同的值

这在Ruby中意味着什么?为什么要给现有的散列值分配相同的值

Proc.new { |message|
   {
      'field1' => message.field1,
      'field2' => message.field2.to_s,
      'field3' => message.field3,,
      'field4' => message.field4.to_s,,
   }
}

上述结构的含义是什么?为什么在散列中分配了相同的值?

这假设上面的代码有两个语法错误:第一个
应该是
,第二个
不应该在那里

此代码创建一个
proc
,该proc将响应
.field1
.field2
.field3
.field4
的对象作为参数。它返回一个包含4个字段的
Hash
,将
field2
field4
转换为字符串

因此,输入可以类似于
OpenStruct
(但不一定是;它只需要响应上面的4个方法调用):

现在,将该参数传递到
Proc
返回:

{"field1"=>"hi", "field2"=>"123", "field3"=>"bar", "field4"=>"456"}

我说不出代码为什么会这样做。

我不知道您所说的“为什么在哈希中分配了相同的值”是什么意思。它们不是相同的值吗?其中2个被转换为字符串,如果您只想使用字符串值的散列,这对于某些目的可能很有用。
{"field1"=>"hi", "field2"=>"123", "field3"=>"bar", "field4"=>"456"}