php 结果 18
<?php
$m = 4;
$n = (++$m) + (++$m) + (++$m);
echo $n;
?>
js 结果 18
m=4;
n = (++m) + (++m) + (++m);
console.log(n);
py 结果 12
m = 4;
n = (++m) +(++m )+(++m )
print(n)
php 结果 18
<?php
$m = 4;
$n = (++$m) + (++$m) + (++$m);
echo $n;
?>
js 结果 18
m=4;
n = (++m) + (++m) + (++m);
console.log(n);
py 结果 12
m = 4;
n = (++m) +(++m )+(++m )
print(n)
|
111111111111Aug 28, 2020
1
因为 m 的值没有发生变化,一直都是 4,
深层原因不清楚,我猜是把`++m` 当作 `0+0+m`处理了? |
|
2
主要原因是因为写这些东西的人有毛病。
另外一个原因是 python 不支持++操作。 |
|
6IbA2bj5ip3tK49jAug 28, 2020
3
@xgfan 病句了
主要原因是写这些东西的人有毛病。 |
|
Trim21Aug 28, 2020 via Android
4
python 没有++操作符
|
|
ss098Aug 28, 2020
5
Python 没有 ++ 操作符,使用 +=。
至于为什么能执行,我也不知道。 |
|
lxrmidoAug 28, 2020
6
python 没有自增运算符,++被编译器识别为+了
|
|
polaaAug 28, 2020
7
++ is not an operator. It is two + operators. The + operator is the identity operator, which does nothing. (Clarification: the + and - unary operators only work on numbers, but I presume that you wouldn't expect a hypothetical ++ operator to work on strings.)
++count Parses as +(+count) Which translates to count You have to use the slightly longer += operator to do what you want to do: count += 1 ----- 摘自 stackoverflow |
|
111111111111Aug 28, 2020
8
@111111111111 + 没有被当作 `0+0+m`, 只是一个单纯正号运算符,一个数字前面加正号,结果与原值相等
|
|
imn1Aug 28, 2020
9
你试试 m = -4
|
|
10
中了谭浩强的毒。。。
|
|
tabris17Aug 28, 2020
11
python 没有++操作符
(++m) +(++m)+(++m) 等价于 (+(+m)) +(+(+m))+(+(+m)) |
|
imn1Aug 28, 2020
12
In [3]: m = -4
In [6]: n=(++m)+(++m)+(++m) In [7]: n Out[7]: -12 看样子 0+0+m 的理解是正确的 |
|
imn1Aug 28, 2020
13
In [8]: +m
Out[8]: -4 破 +m 不是变正值啊?晕了……我去面壁 |
|
xiangyuecnAug 28, 2020
14
不支持 又不报语法错误 只能说明什么:这种细节人家压根不考虑,管你死活呢
+++++++++++++++++++++++++++++++++++m 惊呆了,这是合法语法 |
|
crellaAug 28, 2020 via Android
15
Ruby:
m = 4; puts m.object_id n = (++m)+(++m)+(++m) puts n puts m.object_id # 9 12 9 |
|
linvauxAug 28, 2020
16
@xiangyuecn 我特喵的也惊呆了😂
|