在return语句中设置变量

时间:2017-12-10 02:17:19

标签: java return

在这个video中,我看到程序员在静态方法中使用了这个表单的return语句:

public static int staticFunc(int x, int y) {
    return x = y;
}

(这不是确切的功能,可以在视频中的10:11找到)

为什么使用(在return语句中赋值变量)而不是简单地返回x?这种陈述的名称是什么?

其他背景: 该视频是关于在java中制作游戏的,并且视频中的方法在游戏对象中指定,以允许玩家对象仅在窗口的边界中移动。此函数用于更新播放器对象中的属性。

2 个答案:

答案 0 :(得分:0)

我没有理由以这种方式编写它,特别是因为Java是按值调用的,即为函数体内的新事物分配输入不会改变该范围之外的变量功能。

这让我觉得那个视频中的人对这个事实的了解很少。

在其他上下文中,赋值表达式的结果是赋给变量的值,因此您可以执行以下操作:

String someName = "Tom";
System.out.println(someName = "John");

它会将John打印到控制台,并将“John”分配给someName

但是在你的功能环境中,没有充分的理由按照视频中的方式进行。

答案 1 :(得分:-1)

  

.... [W] hat是这种声明的名称?

“愚蠢”,“令人沮丧”,“业余”,或者我个人的最爱:“不必要的”。

没有理由去做代码的作者在那里做的事情。唯一会发生的事情是你将返回y,这就提出了为什么方法首先存在的问题。

有效的情况,您希望在特定的上下文中使用赋值运算符 - 即if you wanted to use a throwaway variable to process something for you,但在此上下文中, nothing 从中获益除了阅读代码的其他人的许多困惑。

虽然我无法与视频对话,但我建议 - 如果您需要这样的声明 - 使用Function代替进行转换,如果有必要的话。