VBS 函数和过程默认的传递方式

在介绍过程和函数的参数时跳过了一个概念:传址和传值。一个参数是传址还是传值取决于过程或函数定义中的声明。传址的参数用 ByRef 关键字说明,而传值的参数既可以用ByVal 关键字说明也可以不加任何说明——也就是说,没有明确地指定是哪一种的话,ByVal 就是默认值。

只可惜这段文字是错误的,VBS 过程和函数参数传递的方式默认是 ByRef,测试如下:

 

 

Function f(x,y)
	t = x
	x = y
	y = t
End Function 

x = 123
y = 456
WSH.Echo x, y  '123 456

x = 123
y = 456
f (x), (y)
WSH.Echo x, y  '123 456

x = 123
y = 456
Call f(x,y)
WSH.Echo x, y  '456 123

x = 123
y = 456
Call f((x),(y))
WSH.Echo x, y  '123,456

x = 123
y = 456
z = f(x,y)
WSH.Echo x, y  '456,123

x = 123
y = 456
z = f((x),(y))
WSH.Echo x, y '123,456
 


 除了证明 VBS 过程和函数参数传递的方式默认是 ByRef 以外,该脚本还说明了当用括号把表达式括起来的时候,内部会创建一个临时变量来保存括号中表达式的值。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值