为什么结果是这样子的?
求详解
result1 = one two { "three" }
和
result2 = one two do "three" end
是怎么运行赋值的
result1 = one(two { "three" }) result2 = one(two) do "three" end
例子真心举得拐弯抹角,生怕新手看得懂似的...
根据一楼就是一个是 one 的 block 一个是 two 的 block 呗...感谢一楼,楼主的例子真心没看懂
楼主的截图很明显啊,说的就是优先级问题,同样是 one two block, 因为{}和 do/end 的优先级不一样,看着都是 one two block , 但是其实是 1 楼写的那个样子,所以会有不同的结果,按理说书中后面应该要给出 1 楼写的那样的形式来给读者答疑解惑 如果没有的话,楼主还是换本书看吧
https://ruby-china.org/topics/20165
#4 楼 @blacktulip 所以说有一个最佳实践就是当调用的方法只有一个,且也只有一个参数的时候,才可以放心省略括号
谢谢大家的回答