为什么这个地图表达式会产生不同的结果,具体取决于我是使用大括号还是执行/结束?
a = [1,2,3,4,5]
p a.map { |n|
n*2
}
#=> [2,4,6,8,10]
p a.map do |n|
n*2
end
#=> [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
Dar*_*ust 21
那是因为第二行被解释为:
p(a.map) do ... end
Run Code Online (Sandbox Code Playgroud)
代替:
p(a.map do ... end)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,语法是模棱两可的,do
似乎没有那么强烈{
.
归档时间: |
|
查看次数: |
11004 次 |
最近记录: |