DIM在Visual Basic和BASIC中代表什么?

时间:2009-06-23 15:57:49

标签: vb6 language-design basic

DIM在Visual Basic中代表什么?

10 个答案:

答案 0 :(得分:303)

Dim(在BASIC中)代表Dimension,因为它用于定义数组的尺寸。

(BASIC的最初实现是Dartmouth BASIC,它来自FORTRAN,其中DIMENSION被拼写出来。)

如今,Dim用于定义任何变量,而不仅仅是数组,因此它的含义不再直观。

答案 1 :(得分:114)

Dim具有不同的含义。

我发现有关Dim含义“在内存中声明”的参考文献,更相关的参考文献是Dim Statement已发布的Oracle上的文档,作为Siebel VB语言的一部分参考。当然,你可能会争辩说,如果你没有在内存中声明变量你在哪里做?考虑到如何使用Dim,也许“在模块中声明”是一个不错的选择。

在我看来,“在内存中声明”实际上是一个助记符,旨在让学生更容易学习如何使用Dim。我认为“在内存中声明”是一个更好的含义,因为它描述了它在语言的当前版本中的作用,但它不是正确的含义。

事实上,Basic Dim的起源仅用于声明数组。对于常规变量,不使用关键字,而是从其名称推断出它们的类型。例如,如果变量的名称以$结尾,那么它就是一个字符串(即使在方法名称中也可以看到这一点,直到VB6,例如Mid$)。因此,您仅使用Dim维度提供给数组(请注意ReDim调整数组大小。)


真的,重要吗?我的意思是,它是一个关键词,它在人工语言中有其含义。它不一定是英语或任何其他自然语言。所以它可能意味着你想要的任何东西,重要的是它是有效的。

无论如何,这并非完全正确。由于BASIC是我们文化的一部分,并且理解为什么它成为现实 - 我希望 - 将有助于改善我们对世界的看法。


我从我的电脑里坐下来,希望能够帮助保存我们看似失去的这一小部分文化,取而代之的是我们猜测它是什么。因此,我从1998年的版本中挖掘了当前和旧CD的MSDN。我还搜索了旧QBasic的文档[必须使用DOSBox]并设法获得一些达斯茅斯手册,所有这些都是为了找到他们如何谈论Dim。令我失望的是,他们没有说Dim代表什么,只说它是如何被使用的。

但在我的希望黯淡之前,我设法找到了这个BBC Microcomputer System Used Guide(声称是1984年,我不想怀疑它)。 BBC微型计算机使用了一种名为BBC BASIC的BASIC变体,并在文档中对其进行了描述。尽管如此,它没有说Dim代表什么,它说(第104页):

  

...您可以将N $标注为拥有任意数量的条目。对于   例如,DIM N $(1000)将创建一个空格为1000的字符串数组   不同的名字。

正如我所说,它并没有说Dim代表维度,而是作为证据表明在编写本文时将DimDimension相关联是常见的事情那份文件。

现在,我稍后得到了一个有意义的惊喜(第208页),描述DIM关键字的部分的标题(注意:内容中未列出)说:

  

数组的DIM维度

所以,我没有得到“Dim代表......”的引用,但我想很明显,能够阅读这些文件的任何体面的人都会认为Dim意味着维度。 / p>


有了新的希望,我决定搜索Dim是如何被选中的。再一次,我没有找到关于这个主题的帐户,但我仍能找到一个明确的引用:

  

在使用数组之前,必须在DIM(维度)语句中定义它。

你可以在True BASIC inc的网页上找到这个True BASIC Online User's Guides的一部分,这是一家由BASIC的合着者Thomas Eugene Kurtz创立的公司。


所以,实际上,Dim DIMENSION 的简写,是的。那之前存在于FORTRAN中,所以很可能它被FORTRAN的影响选为Patrick McDonald said in his answer


Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)

答案 2 :(得分:28)

它是Dimension的缩写,因为它最初在BASIC中用于指定数组的大小。

  

DIM - (尺寸的缩写)定义数组的大小

参考: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

后来它被用来声明所有类型的变量,在更近期的实现中添加了指定变量类型的可能性。

答案 3 :(得分:13)

对变量进行维度,基本上你告诉编译器你在某个时候需要一个这种类型的变量。

答案 4 :(得分:12)

它代表Dimension,但通常读作“创建变量”或“为此分配空间。”

答案 5 :(得分:9)

变量声明。最初,它是“维度”的缩写,“维度”不是用于编程(在此特定关键字之外)的任何重要程度的术语。

http://in.answers.yahoo.com/question/index?qid=20090310095555AANmiAZ

答案 6 :(得分:6)

DIM代表内存中的声明 DIM x作为新整数 在内存中创建一个存储变量x的空间

答案 7 :(得分:5)

当天DIM为阵列保留内存,当内存有限时,你必须小心使用它。我曾经(1981年)写过一个关于TRS-80 Model III的BASIC程序,内存为48Kb。它不会在具有16Kb RAM的类似机器上运行,直到我通过更改DIM语句来减小数组大小

答案 8 :(得分:3)

Dimension的缩写。这是一种变量。您声明(或“告诉”Visual Basic)您正在使用此单词设置变量。

答案 9 :(得分:2)

当我们使用修饰符时,Dim关键字是可选的 - 公共,受保护,朋友,受保护的朋友,私人,共享,阴影,静态,只读等。 例如 - Static nTotal As Integer

对于引用类型,我们必须使用 new 关键字来创建类或结构的新实例。例如Dim lblTop As New System.Windows.Forms.Label

设置时,Dim语句可以与数据类型一起使用 选项推断。 在这种情况下,编译器从其初始化表达式的类型中推断出变量的数据类型。 示例:

Option Infer On

Module SampleMod

Sub Main()

 Dim nExpVar = 5

以上陈述相当于 - Dim nExpVar As Integer