这是什么目的:“double x = x =(a - b)/(c - 1);”

时间:2016-02-01 13:36:15

标签: c#

我遇到了这样的代码,其中没有充分理由将变量分配给自己。

RecyclerView

对我来说没有多大意义。这背后有原因吗?

3 个答案:

答案 0 :(得分:6)

当一次分配多个变量时,所有变量都将获得右手操作数的值。执行此双重赋值不提供任何值,它甚至可能被编译器优化为double x = (a - b) / (c - 1);。这绝对是一个错字。

答案 1 :(得分:3)

拼写错误。在您的情况下,没有理由再次为自己分配值。

旁注:但是,如果你只是写

double x = x;

然后编译器还会给你一个warning saying

enter image description here

在你的情况下,它将从右手操作数获取值,因此它将编译并且不会有任何问题,但它没有任何实际意义。 Ideone Demo

答案 2 :(得分:1)

这样的结构可能有意义的时候是assign the same value to multiple variables

double x, y;

x = y = 42;

现在,您有两个使用相同值初始化的变量,因为result of an assignment expression (y = 42) is the value that was assigned (42)

但是,以其当前形式(或from its original source, as you indicated),如此:

double spacing = spacing = 42;

没有意义,可以简化:

double spacing = 42;