博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VBS基础篇 - 变量(4) - 变量的存活期
阅读量:5758 次
发布时间:2019-06-18

本文共 854 字,大约阅读时间需要 2 分钟。

生存期(lifetime)就是在脚本运行时,变量在内存中存在且能使用的时间。

变量只有在它的作用域内才有效。一个过程级作用域的变量只有在运行该过程时才有效。当过程结束时,保存该变量的内存就会被释放,就像不存在这个变量一样。同样,脚本级作用域的变量只有在脚本运行时才有效。类似的,类级作用域的变量只有在其它代码使用了基于这个类的对象时才有效。

通过限制变量的作用域,就能限制变量的生存期。这里有一个要时刻记住的重要原则:必须要尽可能地限制变量的生存期和作用域。因为变量会消耗内存,以及操作系统和脚本引擎的资源,只要变量有效就需要这些资源。在使用变量的过程内部声明变量,就能在该过程没有运行时节约该变量所需的资源。

但实际上,资源消耗并不是限制变量作用域的最重要原因;限制作用域可以减少程序的错误,并提高代码的可理解性和可维护性。如果脚本中有多个过程和函数,而所有的变量都是声明为脚本级的,那这些过程和函数就都能修改这些变量。这种情况下任何代码都能随时修改变量,程序员要维护这种代码就很困难。

      看一下这个说明变量作用域和生存期的例子:

Option ExplicitPrivate DateTodayDateToday = DateMsgBox "明天是:" & AddOneDay(DateToday) Function AddOneDay(DateAny)    Dim DateResult    DateResult = DateAdd("d", 1, DateAny)    AddOneDay = DateResultEnd Function
这个脚本有一个AddOneDay()函数。用Dim在函数内部声明的变量
DateResult
的作用域是过程级的,这就说对于函数外部的代码该变量无效。而变量
DateToday
使用Private声明的,有脚本级的作用域。变量
DateResult
只有在AddOneDay()函数运行时才被激活,而
DateToday
在整个脚本的生存期内都是激活的。

 

转载地址:http://qjvkx.baihongyu.com/

你可能感兴趣的文章
python3与python2的部分区别
查看>>
【BGP的基本配置】
查看>>
javascript之闭包深入理解(二)
查看>>
南京邮电大学java程序设计作业在线编程第五次作业
查看>>
[工具类]泛型集合转换为DataTable
查看>>
[MySql]锁表与解锁
查看>>
React:JSX
查看>>
python全栈开发笔记---------数据类型-----集合set
查看>>
uva-565-枚举
查看>>
自动文档摘要评价方法:Edmundson,ROUGE
查看>>
题解[ZJOI2007]矩阵游戏
查看>>
10个顶级Web移动开发JavaScript框架推荐
查看>>
<br/>属性
查看>>
Python中__get__ ,__getattr__ ,__getattribute__用法与区别?
查看>>
树的前、中、后序遍历
查看>>
org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in receiveBlock for block
查看>>
平行宇宙和確定世界——讀阿諾爾德「常微分方程」前幾頁的感悟
查看>>
在Ubuntu上设置gmail邮件通知
查看>>
陶哲轩实分析 定义 7.2.1(形式无限级数) 的一点注记
查看>>
js原生API----查找dom
查看>>