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)
1
111111111111 2020-08-28 16:26:45 +08:00
因为 m 的值没有发生变化,一直都是 4,
深层原因不清楚,我猜是把`++m` 当作 `0+0+m`处理了? |
2
6IbA2bj5ip3tK49j 2020-08-28 16:27:58 +08:00 1
主要原因是因为写这些东西的人有毛病。
另外一个原因是 python 不支持++操作。 |
3
6IbA2bj5ip3tK49j 2020-08-28 16:28:31 +08:00
@xgfan 病句了
主要原因是写这些东西的人有毛病。 |
4
Trim21 2020-08-28 16:29:56 +08:00 via Android
python 没有++操作符
|
5
ss098 2020-08-28 16:30:09 +08:00
Python 没有 ++ 操作符,使用 +=。
至于为什么能执行,我也不知道。 |
6
lxrmido 2020-08-28 16:31:11 +08:00
python 没有自增运算符,++被编译器识别为+了
|
7
polaa 2020-08-28 16:33:54 +08:00
++ 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 |
8
111111111111 2020-08-28 16:35:15 +08:00
@111111111111 + 没有被当作 `0+0+m`, 只是一个单纯正号运算符,一个数字前面加正号,结果与原值相等
|
9
imn1 2020-08-28 16:42:17 +08:00
你试试 m = -4
|
10
idealhs 2020-08-28 16:46:42 +08:00 1
中了谭浩强的毒。。。
|
11
tabris17 2020-08-28 16:46:47 +08:00
python 没有++操作符
(++m) +(++m)+(++m) 等价于 (+(+m)) +(+(+m))+(+(+m)) |
12
imn1 2020-08-28 16:47:50 +08:00
In [3]: m = -4
In [6]: n=(++m)+(++m)+(++m) In [7]: n Out[7]: -12 看样子 0+0+m 的理解是正确的 |
13
imn1 2020-08-28 16:50:27 +08:00
In [8]: +m
Out[8]: -4 破 +m 不是变正值啊?晕了……我去面壁 |
14
xiangyuecn 2020-08-28 16:51:31 +08:00
不支持 又不报语法错误 只能说明什么:这种细节人家压根不考虑,管你死活呢
+++++++++++++++++++++++++++++++++++m 惊呆了,这是合法语法 |
15
crella 2020-08-28 18:02:10 +08:00 via Android
Ruby:
m = 4; puts m.object_id n = (++m)+(++m)+(++m) puts n puts m.object_id # 9 12 9 |
16
linvaux 2020-08-28 22:54:38 +08:00
@xiangyuecn 我特喵的也惊呆了😂
|