Я пытаюсь понять разницу между *(1..9)
и [*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)
и [*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]
?