Почему это вызывает синтаксическую ошибку? Я ожидаю, что это будет наоборот ...
>> foo = 5
>> foo = foo++ + ++foo
=> 10 // also I would expect 12...
>> foo = (foo++) + (++foo)
SyntaxError: <main>:74: syntax error, unexpected ')'
foo = (foo++) + (++foo)
^
<main>:75: syntax error, unexpected keyword_end, expecting ')'
Пробовал с tryruby.org, который использует Ruby 1.9.2.
В C # (.NET 3.5) это работает нормально и дает другой результат:
var num = 5;
var foo = num;
foo = (foo++) + (++foo);
System.Diagnostics.Debug.WriteLine(foo); // 12
Я полагаю, это вопрос приоритета оператора? Кто-нибудь может объяснить?
Для полноты ...
C возвращает 10
Java возвращает 12