function函数的具体用法?

在今天的这篇文章,学习函数的基础,包括如何写、传入参数、返回参数、执行过程等。

VBA 函数与 很相似,除了使用的关键词外,主要区别是,函数可以返回值。

无参数 VBA 函数的基本语法如下:

函数包含的语句中,相比过程,可以看到多一个 [函数名] = [返回值] 语句,这是函数的返回值语句。函数名后制定该函数返回值的类型,语法与声明变量类似。

'声明函数,该函数随机返回 true 或 false。函数需指定返回值类型。

该函数的名称是 RandomLogic,返回值类型时 Boolean 类型,运行调用后,随机返回一个 truefalse 值。实现方法是,使用 VBA 内置函数 Rnd(随机产生0-1的数字),随机数与0.5对比大小,产生 true 或 false 值,并把值赋值给函数名。

函数与过程一样,也可以接收参数,其语法与过程相同。

同样,函数接收的参数,在函数主体中使用。

我们看一个实际的例子。

上述函数接受2个 Double 类型的数字作为参数,两者相加,返回和,其类型也是 Double 类型。

函数与的区别是,函数可以返回值。如果一个函数不返回值,它与子过程并无区别,其中调用方式与子过程相同。

调用有返回值的函数时,一般有两种情形:

  • 一是,使用一个变量存储函数返回的值
  • 二是,函数返回的值参与其他计算

两种情形调用函数方式相同,无参数函数直接书写,有参数函数将参数放在括号内

'使用变量存储函数返回的值 '函数返回值继续参与计算 '函数:返回一个随机值

正常情况下,函数使用 FunctionEnd Function 语句作为函数的开始和结束。但有时根据实际情况,可能需要提前结束并退出函数。VBA 提供 2 种提前退出过程的方法,Exit FunctionEnd 方法。

在一个函数中,当程序运行到 Exit Function 语句时,立即结束当前函数,提前退出。

这里需要注意的是,Exit Function 语句只作用于当前过程,不影响调用它的父过程或函数。

在一个函数,当程序运行到 End 语句时,立即结束当前运行的所有 VBA 过程和函数

在实际开发中,应谨慎使用 End 结束语句。End 语句的效果类似于电脑的强制关机命令,立即结束所有程序,不会保存任何值,于 VBA 有以下效果:

  • 程序中对象的各类事件不会被触发;
  • 任何在运行的 VBA 程序都会停止;
  • 任何打开的窗体都被关闭。

函数与过程类似,大部分用法相同,主要区别是函数可以返回一个值,而过程不可以。两者均可以接受0个或多个参数,参数可以在过程或函数里使用。调用函数时,参数需要放置在括号内部,接函数名后。

}

匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染。

这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美。

在Javascript定义一个函数一般有如下三种方式:

上面三种方法定义了同一个方法函数fnMethodName,

第1种就是最常用的方法,后两种都是把一个函数复制给变量fnMethodName,而这个函数是没有名字的,即匿名函数。

实际上,相当多的语言都有匿名函数。

二、函数字面量和Function()构造函数的区别

虽然函数字面量是一个匿名函数,但语法允许为其指定任意一个函数名,当写递归函数时可以调用它自己,使用Function()构造函数则不行。

Function()构造函数允许运行时Javascript代码动态的创建和编译。在这个方式上它类似全局函数eval()。

Function()构造函数每次执行时都解析函数主体,并创建一个新的函数对象。所以当在一个循环或者频繁执行的函数中调用Function()构造函数的效率是非常低的。相反,函数字面量却不是每次遇到都重新编译的。

用Function()构造函数创建一个函数时并不遵循典型的作用域,它一直把它当作是顶级函数来执行。

“global”和函数关键字定义相比Function()构造器有自己的特点且要难以使用的多,

所以这项技术通常很少使用。

而函数字面量表达式和函数关键字定义非常接近。

考虑前面的区别,虽然有消息说字面量的匿名函数在OS X 10.4.3下的某些webkit的引擎下有bug,

但我们平常所说的匿名函数均指采用函数字面量形式的匿名函数。

三、匿名函数的代码模式

错误模式:其无法工作,浏览器会报语法错。

函数字面量:首先声明一个函数对象,然后执行它。

《Javascript的一种模块模式》中的第一句话就是“全局变量是魔鬼”。

配合var关键字,匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染。

这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美。

实际上,YUI以及其相应的范例中大量使用匿名函数,其他的Javascript库中也不乏大量使用。

具体请看《用函数式编程技术编写优美的

《用函数式编程技术编写优美的

}

我要回帖

更多关于 vb中function函数的用法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信