因此,有一个上问题什么 DIM是的,但我无法找到我为什么要使用它.
据我所知,我发现这三组代码没有区别:
'Example 1
myVal = 2
'Example 2
DIM myVal as Integer
myVal = 2
'Example 3
DIM myVal = 2
Run Code Online (Sandbox Code Playgroud)
如果我省略DIM代码仍然运行,并且在2或3个嵌套循环后,我看到省略它们时输出没有区别.来自Python,我喜欢保持我的代码干净*.
那么为什么我需要声明变量DIM?除了风格问题,是否有技术理由使用DIM?
*我也懒惰,并且没有宣布变量的习惯.
Mat*_*ugh 10
使用Dim使代码的意图明确,并防止常见错误,如拼写错误实际声明一个新变量.如果您使用Option Explicit On您的代码(我完全推荐)Dim成为强制性的.
这是一个未能使用Dim导致(可能是坏的)问题的例子:
myVar = 100
' later on...
myVal = 10 'accidentally declare new variable instead of assign to myVar
Debug.Print myVar 'prints 100 when you were expecting 10
Run Code Online (Sandbox Code Playgroud)
鉴于此代码可以帮助您避免错误:
Option Explicit
Dim myVar as Integer
myVar = 100
' later on...
myVal = 10 ' error: Option Explicit means you *must* use Dim
Run Code Online (Sandbox Code Playgroud)
有关Dim和Option Explicit的更多信息,请访问:http://msdn.microsoft.com/en-us/library/y9341s4f.aspx
chr*_*sen 10
没有声明的任何变量都是类型Variant.虽然变体在某些情况下可能有用,但在不需要时应避免使用,因为它们:
主持人,我正在努力,假设你在未来会给予我应有的尊重.
与所有语言(以及函数的大多数参数)一样,所有局部变量都存储在堆栈中.当子退出时,堆栈将返回到子执行之前的状态.所以所有的内存都被释放了.字符串和对象存储在对象管理器或字符串管理器中的其他位置,并且堆栈包含指针,但vb会在释放它之后进行查找.将vbstring(a bstr)设置为零长度可以释放除两个字节之外的所有字节.这就是为什么我们试图避免全局变量.
在脚本类型程序中,无类型编程具有许多优点.程序很短,使用的变量很少,因此内存和速度无关紧要 - 它足够快.随着程序越来越复杂,它确实很重要.VB专为无类型编程和类型编程而设计.对于大多数excel宏,无类型编程很好并且更具可读性.Vbscript仅支持无类型编程(您可以将其粘贴到vba/vb6中).
| 归档时间: |
|
| 查看次数: |
15061 次 |
| 最近记录: |