O que significa DIM no Visual Basic?
O que significa DIM no Visual Basic?
Respostas:
Dim originalmente (em BASIC) significava Dimensão, pois era usado para definir as dimensões de uma matriz.
(A implementação original do BASIC foi o Dartmouth BASIC, que descendia de FORTRAN, onde DIMENSION é explicitado.)
Atualmente, Dim é usado para definir qualquer variável, não apenas matrizes, portanto seu significado não é mais intuitivo.
Dim
tiveram significados diferentes atribuídos a ele.
Encontrei referências sobre o Dim
significado "Declarar na memória" , a referência mais relevante é um documento no Dim Statement publicado no Oracle como parte do Siebel VB Language Reference. Obviamente, você pode argumentar que, se não declarar as variáveis na memória, onde o faz? Talvez "Declarar no módulo" seja uma boa alternativa, considerando como Dim
é usado.
Na minha opinião, "Declarar na memória" é na verdade um mnemônico , criado para facilitar o aprendizado de como usar Dim
. Eu vejo "Declarar na memória" como um significado melhor, pois descreve o que faz nas versões atuais do idioma, mas não é o significado adequado.
De fato, nas origens do Basic Dim
era usado apenas para declarar matrizes. Para variáveis regulares, nenhuma palavra-chave foi usada; seu tipo foi deduzido do nome. Por exemplo, se o nome da variável termina com $
, é uma string (isso é algo que você pode ver mesmo em nomes de métodos até VB6, por exemplo Mid$
). E assim, você costumava Dim
dar dimensão às matrizes (observe que ReDim
redimensiona matrizes).
Realmente, isso importa ? Quero dizer, é uma palavra-chave que tem seu significado dentro de uma linguagem artificial. Não precisa ser uma palavra em inglês ou em qualquer outro idioma natural. Então, isso pode significar o que você quiser, tudo o que importa é que funcione.
De qualquer forma, isso não é completamente verdade. Como o BASIC faz parte da nossa cultura, e entender por que veio a ser como é - espero - ajudará a melhorar nossa visão do mundo.
Sento-me no meu computador com o desejo de ajudar a preservar esse pedacinho de nossa cultura que parece perdido, substituído por adivinhar o que era. E assim, eu peguei o MSDN atual e os CDs antigos da versão de 1998. Também procurei na documentação o antigo QBasic [Tinha que usar o DOSBox] e consegui obter um manual de Darthmouth, tudo para descobrir como eles falam Dim
. Para minha decepção, eles não dizem o que Dim
significa e apenas dizem como é usado.
Mas, antes que minha esperança estivesse fraca, consegui encontrar este Guia usado do sistema de microcomputadores da BBC (que afirma ser de 1984 e não quero duvidar). O microcomputador da BBC usou uma variante do BASIC chamada BBC BASIC e é descrita no documento. Mesmo assim, não diz o que Dim
significa, diz (na página 104):
... você pode dimensionar N $ para ter quantas entradas quiser. Por exemplo, DIM N $ (1000) criaria uma matriz de cadeias com espaço para 1000 nomes diferentes.
Como eu disse, não diz que isso Dim
significa dimensão, mas serve como prova para mostrar que a associação Dim
com Dimension
era uma coisa comum na hora de escrever esse documento.
Agora, tive uma surpresa gratificante mais tarde (na página 208), o título da seção que descreve a palavra-chave DIM (nota: que não está listada no conteúdo) diz:
Dimensão DIM de uma matriz
Portanto, não recebi a citação "Dim significa ...", mas acho que fica claro que qualquer ser humano decente capaz de ler esses documentos considerará isso como Dim
dimensão.
Com renovada esperança, decidi pesquisar sobre como Dim
foi escolhido. Mais uma vez, não encontrei uma conta sobre o assunto, ainda consegui encontrar uma citação definitiva:
Antes de poder usar uma matriz, você deve defini-la em uma instrução DIM (dimensão).
Você pode encontrar isso como parte dos Guias do usuário do True BASIC Online na página da Web do True BASIC inc, uma empresa fundada por Thomas Eugene Kurtz , co-autor do BASIC.
Então, na realidade, Dim
é uma abreviação para DIMENSION
, e sim. Isso já existia no FORTRAN antes, portanto é provável que tenha sido escolhido por influência do FORTRAN, como Patrick McDonald disse em sua resposta .
Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)
Dim
realmente significa
É abreviação de Dimension, pois foi originalmente usado no BASIC para especificar o tamanho das matrizes.
DIM - (abreviação de dimensão) define o tamanho das matrizes
Ref: http://en.wikipedia.org/wiki/Dartmouth_BASIC
Parte do código-fonte original do compilador BASIC, onde ele saltaria ao encontrar um DIM
comando, no qual você pode ver claramente a intenção original da palavra-chave:
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 $
...
Ref: http://dtss.dartmouth.edu/scans/BASIC/BASIC%20Compiler.pdf
Posteriormente, passou a ser usado para declarar todos os tipos de variáveis, quando a possibilidade de especificar o tipo para variáveis foi adicionada em implementações mais recentes.
Significa Dimensão, mas geralmente é lido como "Criar variável" ou "Alocar espaço para isso".
Declaração variável. Inicialmente, era abreviação de "dimension", que não é um termo usado em programação (fora dessa palavra-chave específica) em grau significativo.
http://in.answers.yahoo.com/question/index?qid=20090310095555AANmiAZ
No dia anterior, o DIM reservava memória para a matriz e quando a memória era limitada, era preciso ter cuidado ao usá-la. Certa vez, escrevi (em 1981) um programa BASIC no TRS-80 Modelo III com 48Kb de RAM. Ele não funcionaria em uma máquina semelhante com 16Kb de RAM até que eu diminuísse o tamanho da matriz alterando a instrução DIM
A palavra-chave Dim é opcional, quando a usamos com modificadores - Público, Protegido, Amigo, Amigo Protegido, Privado, Compartilhado, Sombras, Estático, ReadOnly etc. Static nTotal As Integer
Para o tipo de referência, precisamos usar a nova palavra-chave para criar a nova instância da classe ou estrutura. por exemplo Dim lblTop As New System.Windows.Forms.Label
.
A instrução Dim pode ser usada sem um tipo de dados quando você define Opção Infer como Ativado . Nesse caso, o compilador infere o tipo de dados de uma variável do tipo de sua expressão de inicialização. Exemplo:
Option Infer On
Module SampleMod
Sub Main()
Dim nExpVar = 5
A declaração acima é equivalente a Dim nExpVar As Integer