我试图理解之间的区别*(1..9)
and [*1..9]
如果我将它们分配给变量,它们的工作方式是相同的
splat1 = *(1..9) # splat1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
splat2 = [*1..9] # splat2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
但是当我尝试使用时事情变得很奇怪*(1..9)
and [*1..9]
直接地。
*(1..9).map{|a| a.to_s} # syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'
[*1..9].map{|a| a.to_s} # ["1", "2", "3"...]
我猜部分问题在于操作员的优先级?但我不太确定发生了什么事。为什么我无法使用*(1..9)
我可以用同样的[*1..9]
?