9
我提取简单的例子:红宝石块和括号的参数
require 'pp'
x = 1..3
pp x.map do |i| {:value => i, :double => (i*2)} end
pp x.map { |i| {:value => i, :double => (i*2)} }
pp(x.map do |i| {:value => i, :double => (i*2)} end)
pp(x.map { |i| {:value => i, :double => (i*2)} })
我想知道为什么第一页生产:
[1, 2, 3]
虽然所有的oders是给:
[{:value=>1, :double=>2}, {:value=>2, :double=>4}, {:value=>3, :double=>6}]
我假定它与运算符优先级有关。我在哪里可以找到很好的解释?
这是[Ruby Block Syntax Error](http://StackOverflow.Com/q/6854283/)的副本,[传递给`each`的代码块与括号但是不能与`do`-`end(ruby)](http://StackOverflow.Com/q/6718340/),[块定义 - 大括号和``````end`之间的区别?](http:/ /StackOverflow.Com/q/6179442/),[没有`do``结尾的Ruby多行块]](http://StackOverflow.Com/q/3680097/),[使用`do`块vs括号`{} ](http://StackOverflow.Com/q/2122380/)和[这些块代码风格在Ruby中的区别或价值是什么?](http://StackOverflow.Com/q/533008/)。 – 2011-07-28 08:19:01
在此发布日期使用Ruby-2.2.0进行pry会话的部分内容。 pp_hash = x.map do | i | {:value => i,:double =>(i * 2)} end => [{:value => 1,:double => 2},{:value => 2,:double => 4} ,{:value => 3,:double => 6}] pp_hash.join(“,”) “{:value => 1,:double => 2},{:value => 2, double => 4},{:value => 3,:double => 6}“ 这可能更适合Json的今天使用,但这只是读取输出的风格问题。有时,只要你的代码能够处理正确的类型,你会传递哪一个并不重要。 pp_hash = pp_hash.join(“,”) – 2015-02-18 18:29:26