annybaby 发表于 2012-1-1 22:34:14

请教一个关于变量作用域的问题

大家好!
今天在看帮助文档时,看到关于变量作用域的问题,看到以下一段
........
另外我们可以使用关键字 Local 和 Global 来声明变量以 强制 变量的作用域.
.........

于是试了下
_main()
MsgBox(0, 0, $a)
Func _main()
        Global $a = 1
EndFunc
提示变量未声明,为什么呢??

半芯蕃茄 发表于 2012-1-1 23:13:23

回复 1# annybaby

你看这两个输出的效果。_main()
Global $a = 1
MsgBox(0, 0, $a)
Func _main()
      Global $a = 2
                MsgBox(0, 0, $a)
        EndFunc和下面这个_main()
Global $a
MsgBox(0, 0, $a)
Func _main()
      Global $a = 2
                MsgBox(0, 0, $a)
        EndFunc

user3000 发表于 2012-1-1 23:52:41

还真是...重新学习了...

annybaby 发表于 2012-1-2 11:17:13

回复 2# 半芯蕃茄

在帮助文档里面有这么一段
**************
    在默认情况下,使用 Dim 声明的变量或在函数内部直接赋值而成的变量都是 Local(局部)变量,除非 有同名的全局变量存在(此时将视此变量为该全局变量).另外我们可以使用关键字 Local 和 Global 来声明变量以 强制 变量的作用域.
***********************

第一个例子是显而易见的,你的第二个例子只是对应了上面这段话中的蓝色部分,而我举的例子是想问:为什么上面的这段话的红色部分没有生效
页: [1]
查看完整版本: 请教一个关于变量作用域的问题