Ruby on rails Ruby代码格式-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,, } } 上述结构的含义是什么?为什么在散列中分配了相同的值
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"}