Что означает DIM в Visual Basic и BASIC? - PullRequest
274 голосов
/ 23 июня 2009

Что означает DIM в Visual Basic?

Ответы [ 10 ]

307 голосов
/ 23 июня 2009

Изначально Dim (в бейсике) означало Dimension, поскольку оно использовалось для определения размеров массива.

(Первоначальной реализацией BASIC была Dartmouth BASIC, которая произошла от FORTRAN, где указано DIMENSION.)

В настоящее время Dim используется для определения любой переменной, а не только массива, поэтому ее значение больше не является интуитивным.

115 голосов
/ 05 октября 2010

Dim имели различные значения, приписанные ему.

Я нашел упоминания о Dim, означающем "Объявление в памяти" , тем более релевантной ссылкой является документ по Dim Statement , опубликованный Oracle как часть языка Siebel VB. Ссылка. Конечно, вы можете утверждать, что если вы не объявляете переменные в памяти, где вы это делаете? Возможно «Объявить в модуле» - хорошая альтернатива, учитывая, как используется Dim.

По моему мнению, «Объявление в памяти» на самом деле мнемоника , созданная для облегчения изучения Dim. Я вижу «Объявить в памяти» как лучшее значение, так как оно описывает то, что он делает в текущих версиях языка, но это не то значение.

Фактически, в начале Basic Dim использовался только для объявления массивов. Для обычных переменных ключевое слово не использовалось, вместо этого их тип был выведен из их имени. Например, если имя переменной заканчивается на $, то это строка (это то, что вы могли видеть даже в именах методов вплоть до VB6, например Mid$). И так, вы использовали Dim только для предоставления размерности массивам (обратите внимание, что ReDim изменяет размеры массивов).


Действительно, Имеет ли значение ? Я имею в виду, это ключевое слово, оно имеет значение внутри искусственного языка. Это не должно быть слово на английском или любом другом естественном языке. Так что это может означать, что вы хотите, все, что имеет значение, это то, что это работает.

Во всяком случае, это не совсем так. Поскольку Бейсик является частью нашей культуры, и понимание того, почему оно стало таким, каким оно есть, - я надеюсь, - поможет улучшить наше видение мира.


Я сижу у своего компьютера с желанием помочь сохранить этот маленький кусочек нашей культуры, который кажется потерянным, вместо того, чтобы угадывать, что это было. Итак, я выкопал MSDN как текущие, так и старые компакт-диски из версии 1998 года. Я также искал документацию для старого QBasic [Пришлось использовать DOSBox] и мне удалось получить руководство по Darthmouth, чтобы узнать, как они говорят о Dim. К моему разочарованию, они не говорят, что означает Dim, а только говорят, как это используется.

Но прежде чем моя надежда смутилась, мне удалось найти это Руководство по использованию микрокомпьютерной системы BBC (которое претендует на то, что оно 1984 года, и я не хочу в этом сомневаться). Микрокомпьютер BBC использовал вариант BASIC, названный BBC BASIC, и это описано в документе. Несмотря на то, что в нем не указано, что означает Dim, в нем говорится (на странице 104):

... вы можете измерить N $, чтобы иметь столько записей, сколько хотите. За Например, DIM N $ (1000) создаст массив строк с пространством для 1000 разные имена.

Как я уже сказал, это не говорит о том, что Dim означает измерение, но служит доказательством того, что ассоциация Dim с Dimension была обычным явлением во время написания этого документа.

Теперь, позже я получил приятный сюрприз (на странице 208), заголовок раздела, описывающего ключевое слово DIM (примечание: его нет в содержании), говорит:

DIM измерение массива

Итак, я не получил цитату "Дим обозначает ...", но я думаю, ясно, что любой порядочный человек, способный прочитать этот документ, сочтет, что Dim означает измерение.


С новой надеждой я решил поискать способ выбора Dim. Опять же, я не нашел аккаунта на эту тему, но все же смог найти точную цитату:

Прежде чем вы сможете использовать массив, вы должны определить его в операторе DIM (измерение).

Вы можете найти это как часть Руководств пользователя True BASIC Online на веб-странице True BASIC inc, компании, основанной Томасом Евгением Курцем , соавтором BASIC .


Итак, в действительности, Dim является сокращением для DIMENSION и да. Это существовало в Фортране и раньше, поэтому вполне вероятно, что оно было выбрано под влиянием Фортрана, как сказал Патрик Макдональд в своем ответе .


Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)
29 голосов
/ 23 июня 2009

Это сокращение от 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

Позже он стал использоваться для объявления всех видов переменных, когда в более поздних реализациях была добавлена ​​возможность указывать тип для переменных.

14 голосов
/ 23 июня 2009

Измерение переменной, в основном вы говорите компилятору, что в какой-то момент вам понадобится переменная этого типа.

13 голосов
/ 23 июня 2009

Он обозначает Измерение, но обычно читается как «Создать переменную» или «Выделить пространство для этого».

10 голосов
/ 23 июня 2009

Объявление переменной. Первоначально это было сокращение от «измерение», которое не является термином, который используется в программировании (вне этого конкретного ключевого слова) в какой-либо значительной степени.

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

7 голосов
/ 15 января 2012

DIM означает декларацию в памяти DIM x As New Integer создает пространство в памяти, где хранится переменная x

6 голосов
/ 10 октября 2009

Раньше DIM резервировал память для массива, и когда память была ограничена, вы должны были быть осторожны, как вы ее использовали. Однажды я написал (в 1981 году) программу BASIC для TRS-80 Model III с 48 КБ ОЗУ. Он не будет работать на аналогичной машине с 16 КБ ОЗУ, пока я не уменьшу размер массива, изменив оператор DIM

4 голосов
/ 07 апреля 2012

Сокращение от измерения. Это тип переменной. Вы заявляете (или «говорите» Visual Basic), что настраиваете переменную с этим словом.

3 голосов
/ 03 июля 2015

Ключевое слово Dim является необязательным, когда мы используем его с модификаторами - Общедоступный, Защищенный, Друг, Защищенный друг, Частный, Общий, Тени, Статический, Только для чтения и т. Д. например - Static nTotal As Integer

Для ссылочного типа мы должны использовать ключевое слово new , чтобы создать новый экземпляр класса или структуры. например Dim lblTop As New System.Windows.Forms.Label.

Оператор Dim может использоваться без типа данных при установке Опция Infer to On . В этом случае компилятор выводит тип данных переменной из типа ее выражения инициализации. Пример:

Option Infer On

Module SampleMod

Sub Main()

 Dim nExpVar = 5

Вышеприведенное утверждение эквивалентно - Dim nExpVar As Integer

...