在这个video中,我看到程序员在静态方法中使用了这个表单的return语句:
public static int staticFunc(int x, int y) {
return x = y;
}
(这不是确切的功能,可以在视频中的10:11找到)
为什么使用(在return语句中赋值变量)而不是简单地返回x?这种陈述的名称是什么?
其他背景: 该视频是关于在java中制作游戏的,并且视频中的方法在游戏对象中指定,以允许玩家对象仅在窗口的边界中移动。此函数用于更新播放器对象中的属性。
答案 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
代替进行转换,如果有必要的话。