Pat*_*ald 316
Dim最初(在BASIC中)代表Dimension,因为它用于定义数组的尺寸.
(BASIC的最初实现是达特茅斯BASIC,它来自FORTRAN,其中DIMENSION被拼写出来.)
如今,Dim用于定义任何变量,而不仅仅是数组,因此它的含义不再直观.
The*_*aot 117
Dim 有不同的含义归因于它.
我找到了关于"在内存中声明"的Dim含义的参考资料,更相关的参考文献是关于Dim Statement的文档,该文档是作为Siebel VB语言参考的一部分发布的Oracle.当然,您可能会争辩说,如果您没有在内存中声明变量,您在哪里做?考虑到如何使用,也许"模块中的声明"是一个很好的选择.Dim
在我看来,"在内存中声明"实际上是一个助记符,旨在使学习更容易学习如何使用Dim.我认为"在内存中声明"是一个更好的含义,因为它描述了它在语言的当前版本中的作用,但它不是正确的含义.
实际上,Basic的起源Dim仅用于声明数组.对于常规变量,不使用关键字,而是从其名称推断出它们的类型.例如,如果变量的名称$以字符结尾,那么它就是一个字符串(例如,即使在方法名称中也可以看到这个字符串,直到VB6 Mid$).因此,您Dim只使用了为数组提供维度(请注意ReDim调整数组大小).
真的,这很重要吗?我的意思是,它是一个关键词,它在人工语言中有其含义.它不一定是英语或任何其他自然语言.所以它可能意味着你想要的任何东西,重要的是它的工作原理.
无论如何,这并不完全正确.由于BASIC是我们文化的一部分,并且理解为什么它成为现实 - 我希望 - 将有助于改善我们对世界的看法.
我坐在我的电脑旁,希望能够帮助保存我们看似迷失的文化,取而代之的是我们猜测它是什么.因此,我从1998年的版本中挖掘了当前和旧CD的MSDN.我还搜索了旧QBasic的文档[必须使用DOSBox]并设法获得一些达斯茅斯手册,所有这些都是为了找到他们如何谈论Dim.令我失望的是,他们没有说出什么是Dim代表什么,只说它是如何使用的.
但在我的希望黯淡之前,我设法找到了这个BBC微机系统使用指南(声称是从1984年开始,我不想怀疑它).BBC微型计算机使用了一种名为BBC BASIC的BASIC变体,并在文档中对其进行了描述.尽管如此,它并没有说出它Dim代表什么,它说(第104页):
...你可以维N $以拥有你想要的任意数量的条目.例如,DIM N $(1000)将创建一个包含1000个不同名称空间的字符串数组.
正如我所说的,它并没有说Dim代表了尺寸,但作为证据表明关联Dim与Dimension在编写文档时常见的事.
现在,我后来得到了一个有意义的惊喜(第208页),描述DIM关键字的部分的标题(注意:内容中未列出)说:
数组的DIM维度
所以,我没有得到"Dim代表......"的引用,但我想很明显,能够阅读这些文件的任何体面的人都会认为这Dim意味着维度.
带着新的希望,我决定寻找Dim被选中的方式.再一次,我没有找到关于这个主题的帐户,我仍然能够找到一个明确的引用:
在使用数组之前,必须在DIM(维度)语句中定义它.
您可以在True BASIC inc的网页上找到这个True BASIC在线用户指南的一部分,该公司是由BASIC的合着者Thomas Eugene Kurtz创立的公司.
所以,实际上,这Dim是一个简写DIMENSION,是的.那之前存在于FORTRAN中,所以很有可能它被FORTRAN的影响所挑选,正如帕特里克麦克唐纳在他的回答中所说的那样.
Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 30
它是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 $
...
Run Code Online (Sandbox Code Playgroud)
参考:http://dtss.dartmouth.edu/scans/BASIC/BASIC%20Compiler.pdf
后来它被用来声明所有类型的变量,当在更近期的实现中添加了指定变量类型的可能性时.
Sho*_*ban 10
变量声明.最初,它是"维度"的缩写,"维度"不是在任何重要程度上用于编程(在此特定关键字之外)的术语.
http://in.answers.yahoo.com/question/index?qid=20090310095555AANmiAZ
小智 6
回到当天,DIM为阵列保留了内存,当内存有限时,你必须小心使用它.我曾经(1981年)写过一个关于TRS-80 Model III的BASIC程序,内存为48Kb.它不会在具有16Kb RAM的类似机器上运行,直到我通过更改DIM语句减小了阵列大小