Eri*_*uer 8 java syntax int operators
我遇到了以下令人惊讶的问题:
int x = 7;
x += 0.5;
Run Code Online (Sandbox Code Playgroud)
显然是合法的语法!添加后,X仍然是7,所以双被转换为int并四舍五入到0,但这是没有代码中的任何显式转换完成.有人对此感到惊讶吗?这里的理由是什么?
编辑以澄清我的问题:任何人都可以给出这个决定的充分理由吗?我觉得这是一个可怕的决定,要求在其他任何地方进行显式投射,但是在你默默抛弃数据的语言中有这一点.我错过了什么吗?
Eng*_*uad 12
x += 0.5;
Run Code Online (Sandbox Code Playgroud)
相当于:
x = (int) (x + 0.5)
Run Code Online (Sandbox Code Playgroud)
一般来说:
x += y 相当于 x = (type of x) (x + y)
| 归档时间: |
|
| 查看次数: |
2036 次 |
| 最近记录: |