【问题标题】:Modify a Global Variable with a Function?用函数修改全局变量?
【发布时间】:2014-05-27 10:30:10
【问题描述】:

在 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);
}

【问题讨论】:

    标签: javascript canvas global-variables parameter-passing processing


    【解决方案1】:

    您在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;
    }
    

    【讨论】:

      【解决方案2】:

      删除这一行:

       int number = aNumber;
      

      您将参数复制到“数字”变量,然后将其返回。实际上,您正在打印在您发布的任何地方的代码中未更改的全局变量“数字”,然后返回参数,这与您刚刚完成的计算无关。

      您可能想修改全局参数number,然后返回它,所以进行更改:

      int theNumbers(int aNumber) {
         // calculations for number (based on aNumber? contains number=SOMETHING somewhere?)
      
         println(number); // prints the correct number    
         return number;
      }
      

      编辑:

      然后修改全局即可。从int number = aNumber; 中删除类型,这样您就不会重新初始化变量。最后:

      int theNumbers(int aNumber) {
         // calculations for number (based on aNumber? contains number=SOMETHING somewhere?)
      
         println(number); // prints the correct number    
         number = aNumber;
         return number;
      }
      

      【讨论】:

      • theNumber() 如何返回被传递的 aNumber 值?该值如何成为全局值以便 mousePressed() 可以访问它?
      • 老实说我迷路了。在 mousePressed 中,你需要number 变量值,还是aNumber 值,即theNumbers() 的参数?现在你什么都不传递,然后打印全局变量number,然后不给全局变量number赋值并返回它(它的值没有),所以mousePressed中没有打印任何内容。
      • 在代码中添加了更多细节。这样更清楚吗?
      • 在 mousePressed 中,我需要 aNumber 的值,但我无法传递 mousePressed(int aNumber).. 所以当通过 javascript 调用 theNumbers 时,我需要某种全局变量来保持修改..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多