如何修改全局变量的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修改全局变量的值相关的知识,希望对你有一定的参考价值。

简单的说,在一个程序中任何位置都能用的变量就是全局变量。
要想改变它的值,很简单,就是给它赋新值。以VB为例,例如:
Public a As int

a=0
/这是定义一个变量,并赋初值。
在程序中用到a时,可以赋值(例如:a=10)那么就能改变它的值,这个改变的值是会影响整个程序的(无论有多少个子程序,都会被影响到)。
如果要再改变它的值,那么就要重新赋值。
参考技术A 全局变量直接赋值不就行了!

Ruby黑魔法, 在不使用全局变量的情况下, 在方法作用域里修改局部变量的值

举个栗子, 在文件作用域中定义两个变量, 然后直接在函数里修改它们的值, 之后再在文件作用域输出看看变量的值是否被改变:

a = 4
b = 7
self.print(a.object_id(), " ", b.object_id(), "
")
def cha()
  a = 8
  b = 9
  self.print(a.object_id(), " ", b.object_id(), "
")
end
cha()
self.print(a, " ", b, "
")

console输出(每次运行都有可能不一样):

9 15
17 19
4 7

当a和b的被赋值成8和9之后, 他们的对象id已经变了, 说明a和b指向了8和9这两个新的Number对象, 所以回到文件作用域后a和b的值并没有改变.
解决办法一般是把文件作用域的a和b改成全局变量@a和@b, 不过还有一种办法是使用binding, 把对象的上下文保留在代码中的某个特定的位置, 供将来使用.

a = 4
b = 7
def cha(binding)
  binding.local_variable_set(:a, 6)
  binding.local_variable_set(:b, 8)
end
cha(binding)
self.print(a, " ", b, "
")

console标准输出:

$ 6 8

以上是关于如何修改全局变量的值的主要内容,如果未能解决你的问题,请参考以下文章

c语言工程里其它文件引用全局变量?

javascript定义了一个全局变量,怎么在局部变量中修改该变量的值?

js在函数中传进全局变量,修改全局变量问题。

我想请教一下,powershell的脚本之间如何传递全局变量。

Delphi 中全局变量无法被修改

全局变量与局部变量的特点