【发布时间】:2018-09-28 12:47:53
【问题描述】:
有人知道为什么这在 MATLAB 中有效吗?
>> 1 ++ 2
ans =
3
来自 C、python、Java 等的编码,我发现这完全可以工作是最违反直觉的。大概解析器有一些我不理解的重要内容?
【问题讨论】:
-
1++++++++++2也可以... -
1 ++ 2 = 1 + (+2) = 1 + 2 = 3... 这还能怎么解释呢?连续的+/-符号没有歧义。请参阅unary plus(和一元减号)。 -
@JETM 类似的原因,是的,但是
++++和+ + + +的工作方式与Java 不同,因为您需要在它们之间留有空格。 -
若想获得更多乐趣,请比较
1 ++ 2和[1 ++ 2] -
@LuisMendo 这太疯狂了。
[1 ++ 2]是[1 2]而[1 + + 2]是3... :'-( 谁能解释一下...
标签: matlab parsing syntax abstract-syntax-tree