VBScript学习笔记 - 函数和子例程

一、定义

1. 函数定义:

function f_add(num_in)
    num_in = num_in + 1
    f_add = num_in
end function

用函数名来返回参数

2. 子例程定义

sub s_add(num_in)
    num_in = num_in + 1
end sub

子例程没有返回值

二、函数与子例程在参数传递上的差别

函数和子例程调用时可以有两种方式:在括号中指定参数,或使用不带括号的格式。

使用带括号的方式指定参数时,参数是按值传递的,函数或子例程中对参数的修改不会反映到参数中。而用不带括号的格式时,则函数或子例程中对参数值的改动都是实际发生的。

以下代码示范了这两种格式的差别:

num_out = 0
wscript.echo "num before sub:", num_out
‘用不带括号的格式调用子例程
s_add num_out
wscript.echo "num after sub:", num_out
wscript.echo ""

num_out = 0
wscript.echo "num before sub():", num_out
‘用带括号的格式调用子例程
s_add(num_out)
wscript.echo "num after sub():", num_out
wscript.echo ""

num_out = 0
wscript.echo "num before function:", num_out
‘用不带括号的格式调用函数
f_add num_out
wscript.echo "num after function:", num_out
wscript.echo ""

num_out = 0
wscript.echo "num before function():", num_out
‘用带括号的格式调用函数
f_add(num_out)
wscript.echo "num after function():", num_out
wscript.echo ""

sub s_add(num_in)
    wscript.echo "num in sub", num_in
    num_in = num_in + 1
    wscript.echo "num in sub", num_in
end sub

function f_add(num_in)
    wscript.echo "num in function", num_in
    num_in = num_in + 1
    wscript.echo "num in function", num_in
    f_add = num_in
end function

输出结果如下

num before sub: 0
num in sub 0
num in sub 1
num after sub: 1

num before sub(): 0
num in sub 0
num in sub 1
num after sub(): 0

num before function: 0
num in function 0
num in function 1
num after function: 1

num before function(): 0
num in function 0
num in function 1
num after function(): 0

时间: 2024-10-24 19:43:28

VBScript学习笔记 - 函数和子例程的相关文章

VBScript学习笔记 - 作用域,变量显式声明

<p>在脚本主体中声明或创建一个变量时,默认是全局作用域(global scope)的:而在函数或子例程中定义的变量,默认是私有作用域(private scope)的.</p><p>要显式声明变量的作用域,可用public语句和private语句</p><div class="cnblogs_code" style="border-top: #cccccc 1px solid; border-right: #cccccc

C#学习笔记---函数 的理解及总结(入门级)

*内容可能会有不到位的地方,希望小伙伴们顺便找出来,共同在IT这个“坑“里越陷越深,做一个有深度的程序”猿“:深夜发博只图进步与...你懂得!! 1)函数: 主要的功能就是为了让代码结构更加良好.函数是——实现相对独立功能的程序代码模块(程序段).函数的四要素:函数名,输入,输出,运算 *有的函数没有输入,函数名后的小括号中可以不写东西,但必须要有小括号.*有的函数没有返回,在函数名的左侧不要写数据类型了,写void即可.(只是输出要显示,不往“Main”的函数里代入.直接输出用void) 函数

Lua学习笔记--函数初探

感觉学习语言的话,函数是个重头戏.来看一下Lua的函数是神马样纸的东东! 一.简单的函数例子 --一个简单的函数:阶乘 function factorial(num) if num == 0 then return 1 else return num * factorial(num - 1) end end 恩,这就是个函数.function关键字,说明这是个函数,然后是函数名,后面跟的是参数列表,使用括号括起来.函数的结尾需要一个end关键字,表明函数结束了. 下面看以下怎么调用: --一个简

F# 学习笔记(函数基础)

因为只是笔记,所以只记录自己觉得要注意与需要理解的地方,其他就不记了 函数定义上F#有自己的写法: [<EntryPoint>] let main argv = let f1 = fun x -> x * x - 2 * x let f2 x = let x1 = x - 2 x * x1 printfn "%i" (f2 10) printfn "%i" (f1 10) 0 f1是很好理解的,因为基本上现在支持lambda表达式的基本都是第一种写

VBScript学习笔记

因为下个礼拜就要用QTP测试一个web项目,所以今天晚上用了一些时间来重新学习下VBScript语法.才知道VBScript仅仅支持IE浏览器,对于其他的浏览器都不支持. 接下来简单介绍一些语法: 1. VBScript不区分大小写,而且支持space, tab和space tab混合使用缩进方法.这个跟python完全相反. 2. 声明变量有三种方法: Dim, Public, Private Dim var Dim声明的变量根据它所处的位置决定它是被该script还是在该script中的pr

python学习笔记 - 函数,集合,包,模块

一.函数 a=1, b=2, 交换值 定义中间量c,C=None, a,b=b,a a,b,c=1,2,3 sys.argv 实现指定的某些功能,使用的时候可以直接调用,简化代码,提高代码复用性 def fun():#定义一个函数,后面是函数名                print("Hello World")#函数体 例如: 1.def sayHello(): print("Hello World") sayHello()  --调用 2.def sayNam

Python学习笔记-函数篇

定义 返回单值 def my_abs(x): if x >= 0: return x else: return -x 返回多值 返回多值就是返回一个tuple import math def move(x, y, step, angle=0): nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny 空函数 def nop(): pass 指定默认参数 必选参数在前,默认参数在后.默认参数需指向不

GO学习笔记 - 函数名前面是否有输入参数肯定是不一样的!!

在刚接触GO语言时候,我相信你也会有这种困惑,为什么有的函数名前面有输入参数,而一些却没有,它们是否有差别?确实有差别,没有输入参数,是一般的函数:有输入参数,是结构的方法,输入参数叫做"方法接收者"!GO语言没有类,方法都定义在结构上了!! 官方教程: 函        数:https://tour.go-zh.org/basics/4 结构体方法:https://tour.go-zh.org/methods/1 实例代码: main.go : 引入了"sunylat/de

F# 学习笔记(函数基础3)

递归函数: 在F#中一般不允许调用自身,而只能通过关键字rec来声明其为递归函数: 最大公约数的应用,使用辗转相除法: [<EntryPoint>] let main argv = let rec gcd(a,b) = if a = 1 then b elif b = 1 then a elif a = b then b else if a > b then gcd(a-b, b) else gcd(a,b-a) (72,54) |> gcd |> printfn "