Ruby оценка элемента массива - PullRequest
3 голосов
/ 11 июля 2020

Мне нравится знать, почему в массивах, когда элемент является вызовом метода, наличие круглых скобок имеет значение. Я понимаю, что [] - это вызов метода, и я предполагал, что аргументы этого вызова метода будут оцениваться в первую очередь, поэтому наличие круглых скобок не имеет значения. Но очевидно, что это имеет значение.

def double x
  x * 2
end

a = [1, 2+2] # works fine the array is [1, 4]
b = [1, double(2)] # also works fine the array is [1, 4]
c = [1, (double 2)] # also works fine the array is [1, 4]
d = [1, double 2]  # throws error syntax error, unexpected tINTEGER, expecting keyword_do or '{' or '('
[1, double 2]
...