在Visual Basic中Dim代表什么?
当前回答
Dim被赋予了不同的含义。
我找到了Dim的意思是“在内存中声明”的参考资料,更相关的参考资料是关于Dim语句的文档,作为Siebel VB语言参考的一部分发布在Oracle中。当然,你可能会说,如果你不在内存中声明变量,你在哪里声明呢?考虑到Dim的使用方式,也许“Declare in Module”是一个不错的选择。
在我看来,“Declare In Memory”实际上是一个助记符,创建它是为了让学习如何使用Dim更容易。我认为“Declare In Memory”有更好的含义,因为它描述了它在当前版本的语言中所做的事情,但它不是正确的含义。
事实上,在Basic Dim的起源仅用于声明数组。对于常规变量,不使用关键字,而是从它们的名称推断它们的类型。例如,如果变量名以$结尾,那么它就是一个字符串(这是你甚至可以在VB6的方法名中看到的,例如Mid$)。因此,使用Dim只是为了给数组赋值(注意,ReDim调整数组的大小)。
真的吗?我的意思是,这是一个关键词,它在人工语言中有它的含义。它不必是英语或任何其他自然语言中的一个单词。所以它可以是你想要的任何东西,重要的是它能起作用。
无论如何,这并不完全正确。因为BASIC语言是我们文化的一部分,我希望理解它为什么会是这样,这将有助于改善我们对世界的看法。
我坐在电脑前,渴望帮助保护我们文化中这一小块似乎已经消失的东西,取而代之的是我们对它的猜测。因此,我从1998年的版本中挖掘了MSDN当前和旧的cd。我还搜索了旧的QBasic文档[不得不使用DOSBox],并设法得到了一些Darthmouth手册,所有这些都是为了找到他们是如何谈论Dim的。令我失望的是,他们没有说Dim代表什么,只说如何使用。
但在我的希望渺茫之前,我设法找到了这本BBC微型计算机系统使用指南(它声称是1984年的,我不想怀疑它)。BBC微型计算机使用的是一种叫做BBC BASIC的BASIC变体,在文档中有详细描述。尽管它没有说Dim代表什么,但它说(在104页):
... 你可以给N$维数,让它有你想要的个数。为 例如,DIM N$(1000)将创建一个空间为1000的字符串数组 不同的名称。
正如我所说的,它并没有说Dim代表维度,但它证明了在编写该文档时将Dim与dimension关联是一件很常见的事情。
现在,我后来得到了一个惊喜(在第208页),描述DIM关键字的部分的标题(注意:在内容中没有列出)说:
数组的DIM维数
所以,我没有听到“Dim代表…”这句话,但我想很明显,任何能够阅读这些文件的正派人都会认为Dim代表维度。
怀着新的希望,我决定调查一下迪姆是如何被选中的。同样,我没有找到关于这个主题的说明,但我仍然能够找到一个明确的引用:
在使用数组之前,必须在DIM(维度)语句中定义它。
你可以在True BASIC公司的网页上找到这是True BASIC在线用户指南的一部分,该公司是由BASIC的合著者Thomas Eugene Kurtz创立的。
所以,实际上,Dim是DIMENSION的缩写,是的。它之前就存在于FORTRAN中,所以它很可能是受FORTRAN的影响而选择的,就像Patrick McDonald在他的回答中所说的那样。
Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)
其他回答
DIM代表内存声明 DIM x作为新整数 在内存中创建存储变量x的空间
Dimension的缩写。它是一种变量。你声明(或“告诉”Visual Basic)你正在用这个词设置一个变量。
维数变量,基本上你是在告诉编译器你在某个时候需要一个这种类型的变量。
在过去,DIM为数组保留内存,当内存有限时,必须小心使用它。我曾经(1981年)在TRS-80 Model III上写过一个BASIC程序,内存为48Kb。除非我通过更改DIM语句减小数组大小,否则它无法在具有16Kb RAM的类似机器上运行
它是Dimension的缩写,因为它最初在BASIC中用于指定数组的大小。
DIM - (dimension的缩写)定义数组的大小
裁判:http://en.wikipedia.org/wiki/Dartmouth_BASIC
原来的BASIC编译器源代码的一部分,当找到一个DIM命令时,它会跳转,在这里你可以清楚地看到关键字的原始意图:
DIM LDA XR01 BACK OFF OBJECT POINTER
SUB N3
STA RX01
LDA L 2 GET VARIABLE TO BE DIMENSIONED
STA 3
LDA S 3
CAB N36 CHECK FOR $ ARRAY
BRU *+7 NOT $
...
裁判:http://dtss.dartmouth.edu/scans/BASIC/BASIC%20Compiler.pdf
后来,当为变量指定类型的可能性在最近的实现中添加时,它被用于声明所有类型的变量。