Autoit 函数的参数传递方式

函数的参数传递方式有两种,值传递和址传递

所谓值传递,就是参数在传递时仅仅是传递的参数的值,举个简单的例子,例如下属程序段:

Local $a,$b,$c
$a=1
$b=2
$c=0
_Test($a,$b)
$c=$a+$b
MsgBox(0,"Only a Test",$c)
Func _Test($x,$y)
    $x=$x+1
    $y=$y+1
EndFunc

_Test是一个没有返回值的简单函数,主程序段中调用_Test($a,$b),这时$a的值传递给$x,$b的值传递给$y,这时对$x和$y的任何更改操作只和$x和$y有关,无论怎么对$x和$y进行更改,例如_Test中的$x和$y都自加1,都与$a和$b无关

运行这个程序后,$c的值为3

值传递也是我们普遍使用的方法,下面说一下址传递

所谓址传递,简单说是把一个变量的地址传给另一个变量,这就像给一个人取个小名,你喊他的大名和小名他都答应一样

看下面的这段程序:

Local $a,$b,$c
$a=1
$b=2
$c=0
_Test($a,$b)
$c=$a+$b
MsgBox(0,"Only a Test",$c)
Func _Test(ByRef $x,ByRef $y)
    $x=$x+1
    $y=$y+1
EndFunc

这段程序中 _Test的变量$x和$y前都添加了ByRef,这说明了$x和$y都是址传递。简单说,$x是$a的小名,$y是$b的小名,对$x和$y的操作相当于对$a和$b直接操作

这段程序运行后,$c的结果为5

内容来源:http://www.autoitx.com/viewthread.php?tid=1908&highlight=Return

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注