简体   繁体   English

用函数修改全局变量?

[英]Modify a Global Variable with a Function?

In mousePressed, I need the value of aNumber, but I can't pass mousePressed(int aNumber).. so I need some sort of global to remain modified when theNumbers is called via javascript.. 在mousePressed中,我需要aNumber的值,但是我不能传递mousePressed(int aNumber)..因此,当通过javascript调用theNumbers时,我需要某种全局变量来保持修改。

int number = 0;
int theNumbers(int aNumber) { //aNumber = 1, 2, or 3, from the javascript)

  println(number); // prints the correct number
  int number = aNumber; // set the global variable number equal to aNumber 
  return number;
}

void mousePressed() {
  aLongNumber = 10000000000;

  println(number); // prints 0 right now, should print the value of aNumber
  long numberLong = aLongNumber + (number * aLongNumber);
}

You are declaring local variable inside theNumbers() just remove int before number so your function would look like this: 您在theNumbers()内部声明局部变量,只是在number之前删除int ,因此您的函数将如下所示:

int theNumbers(int aNumber) { //aNumber = 1, 2, or 3, from the javascript)

  println(number);
  number = aNumber; // removed int that made new local variable "number"
  return number;
}

Remove this line: 删除此行:

 int number = aNumber;

You copy the argument to the "number" variable and then return it. 您将参数复制到“数字”变量,然后将其返回。 In fact, you are printing global variable "number" that is not changed in the code you posted anywhere, and then return the argument, that has nothing to do with calculations you have just done. 实际上,您正在打印的全局变量“ number”在您在任何地方发布的代码中均未更改,然后返回该参数,该参数与您刚刚执行的计算无关。

You probably wanted to modify the global parameter number and then return it, so make a change: 您可能想要修改全局参数number ,然后返回它,因此进行更改:

int theNumbers(int aNumber) {
   // calculations for number (based on aNumber? contains number=SOMETHING somewhere?)

   println(number); // prints the correct number    
   return number;
}

EDIT: 编辑:

Just modify the global then. 只需修改全局即可。 Remove the type from int number = aNumber; int number = aNumber;删除类型int number = aNumber; so you do not reinitialize the variable. 因此您不必重新初始化变量。 In the end: 到底:

int theNumbers(int aNumber) {
   // calculations for number (based on aNumber? contains number=SOMETHING somewhere?)

   println(number); // prints the correct number    
   number = aNumber;
   return number;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM