Microsoft(R) Visual Basic(R) Scripting Edition Function 语句 | 语言参考 起始页|版本 1

请参阅

##### 描述

> 声明 Function 过程的名称、参数以及构成其主体的代码。

##### 语法

> [Public | Private] Function name [(arglist)]
> [statements]
> [name = expression]
> [Exit Function]
> [statements]
> [name = expression]
> End Function

> Function 语句的语法包含以下部分：

> 部分 | 描述
> Public | 表示 Function 过程可被所有 Script 中的所有其他过程访问。
> Private | 表示 Function 过程只可被声明它的 Script 中的其他过程访问。
> name | Function 的名称，遵循标准的变量命名约定。
> arglist | 代表调用时要传递给 Function 过程的参数的变量列表。用逗号隔开多个变量。
> statements | 在 Function 过程的主体中执行的任意语句组。
> expression | Function 的返回值。

> arglist 参数包含下列语法和部分：

> [ByVal | ByRef] varname[( )]

> 部分 | 描述
> ByVal | 表示该参数按值传递。
> ByRef | 表示该参数按引用传递。
> varname | 代表参数变量的名称；遵循标准的变量命名约定。

##### 说明

> 如没有显式指定使用 Public 或 Private，则 Function 过程默认为公用，即它们对于 Script 中的所有其他过程是可见的。Function 中局部变量的值在对过程的调用中不被保留。

> 所有可执行代码必须包含于过程中。不能在另一个 Function 或 Sub 过程中定义 Function 过程。

> 使用 Exit Function 语句可以从 Function 过程中立即退出。程序继续执行调用 Function 过程的语句之后的语句。可在 Function 过程的任何位置出现任意个 Exit Function 语句。

> 与 Sub 过程类似，Function 过程是可以获取参数、执行一系列语句并改变其参数值的独立过程。与 Sub 过程的不同之处是：当要使用由函数返回的值时，可以在表达式的右边使用 Function 过程，这与内部函数的使用方式一样，例如 Sqr、Cos 或 Chr。

> 在表达式中，可以通过使用函数名，并在其后用圆括号给出相应的参数列表来调用 Function 过程。有关调用 Function 过程的详细信息，请参阅 Call 语句。

> 小心 Function 过程可以是递归的，即该过程可以调用自身以完成某个给定的任务。但是，递归可能会导致堆栈溢出。

> 要从函数返回一个值，只需将值赋给函数名。在过程的任意位置都可以出现任意个这样的赋值。如果没有给 name 赋值, 则过程将返回一个默认值：数值函数返回 0，字符串函数返回零长度字符串 ("")。如果在 Function 中没有对象引用被指定给 name（使用 Set)，则返回对象引用的函数将返回 Nothing。

> 下面的样例说明如何给一个名为 BinarySearch 的函数赋返回值。在此样例中，将 False 赋给了该函数名，表示没有找到某个值。

> >     Function BinarySearch(. . .)
> >         . . .
> >         ' 未找到该值。返回 False 值。
> >         If lower > upper Then
> >             BinarySearch = False
> >             Exit Function
> >         End If
> >         . . .
> >     End Function

> 在 Function 过程中使用的变量分为两类：一类是在过程内显式声明的，另一类则不是。在过程内显式声明的变量（使用 Dim 或等效方法）总是过程的局部变量。被使用但没有在过程中显式声明的变量也是局部变量，除非在该过程外更高级别的位置显式声明它们。

> 小心 过程可以使用没有在过程内显式声明的变量，但如果在 Script 级中任何定义的名称与之相同，则会发生名称冲突。如果过程中使用的未声明的变量与另一个过程、常数或变量的名称相同，则会认为过程使用的是 Script 级的名称。显式声明变量可以避免这类冲突。可以使用 Option Explicit 语句来强制显式声明变量。

> 小心 VBScript 可能会重新排列数学表达式以提高内部效率。当 Function 过程修改数学表达式中变量的值时，应避免在同一表达式中使用该函数。

(C) 1998 Microsoft Corporation. All rights reserved. Terms of Use.