Ruby do/end vs braces

后端 未结 3 2037
再見小時候
再見小時候 2020-12-30 00:43

Why does this map expression produce different results depending on whether I use braces or do/end?

a = [1,2,3,4,5]


p a.map { |n|
    n*2
}  
#=> [2,4,6         


        
3条回答
  •  误落风尘
    2020-12-30 01:34

    With the do/end syntax you are passing the block to p as a second argument, rather than to the map. You get the same result with:

    p a.map
    

    The block is ignored by p as it does not produce anything on inspect.

提交回复
热议问题