【发布时间】:2011-09-24 11:07:45
【问题描述】:
为什么这会引发语法错误?我希望它是相反的方式......
>> 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 ')'
在使用 Ruby 1.9.2 的 tryruby.org 上进行了尝试。
在 C# (.NET 3.5) 中,这可以正常工作,并且会产生另一个结果:
var num = 5;
var foo = num;
foo = (foo++) + (++foo);
System.Diagnostics.Debug.WriteLine(foo); // 12
我猜这是运营商优先级的问题?谁能解释一下?
为了完整性...
C 返回 10
Java 返回 12
【问题讨论】:
标签: ruby syntax-error