我感觉某种程度上我不明白使用"返回"价值,所以我会给你两个例子,也许有人会为我清楚。 这种方法有什么区别:
int giveSecret(){
return 42;
}
//code in between
int theSecret = life.giveSecret();
System.out.println(theSecret);
(我预期的控制台输出): 42
和这个方法:
void giveSecret(){
//code that "resets" variable to value 42
}
//code in between
int theSecret = life.giveSecret();
System.out.println(theSecret);
(我预期的控制台输出): 42
答案 0 :(得分:1)
当然,语言可以像后一个例子一样工作。每个函数都可以有一个与之关联的全局变量,其中"结果"被储存了。您将调用该函数,然后从全局变量中读取结果。但是:
令人作呕。为什么需要另一个全球名称?为什么要以某种方式知道哪个变量与哪个函数相关联?
它不是线程安全的。多个线程可能同时调用该函数。现在,哪个线程的结果出现在全局变量中?
语言设计师很久以前就已经知道了这个问题,而且它已经停滞不前了。