Що означає DIM у Visual Basic?
Що означає DIM у Visual Basic?
Відповіді:
Dim спочатку (в BASIC) означав Dimension, оскільки його використовували для визначення розмірів масиву.
(Первісна реалізація BASIC була Dartmouth BASIC, яка походить від FORTRAN, де прописано РОЗМІР.)
В даний час Dim використовується для визначення будь-якої змінної, а не лише масивів, тому її значення вже не інтуїтивно зрозуміле.
Dim
мали різні значення, які йому приписували.
Я знайшов посилання на Dim
значення "оголосити в пам'яті" , більш релевантним посиланням є документ про Dim Заяву, опублікований Oracle як частина довідника мови Siebel VB. Звичайно, ви можете стверджувати, що якщо ви не оголошуєте змінні в пам'яті, де це робити? Можливо, "Декларувати в модулі" є хорошою альтернативою, враховуючи, як Dim
використовується.
На мою думку, «Оголосити в пам’яті» насправді мнемонічне , створене для того, щоб легше навчитися користуватися Dim
. Я вважаю "Декларувати в пам'яті" як кращий сенс, оскільки він описує те, що він робить у сучасних версіях мови, але це не належне значення.
Фактично, витоки Basic Dim
використовувались лише для оголошення масивів. Для звичайних змінних жодне ключове слово не використовувалося, натомість їх тип був зроблений з їх імені. Наприклад, якщо ім'я змінної закінчується, $
то це рядок (це те, що ви могли бачити, наприклад, навіть у назвах методів до VB6 Mid$
). Отже, ви використовували Dim
лише для надання розмірів масивам (зауважте, що ReDim
змінює розміри масивів).
Дійсно, чи це має значення ? Я маю на увазі, це ключове слово, яке має своє значення всередині штучної мови. Це не повинно бути словом англійською або будь-якою іншою природною мовою. Тож це може просто означати все, що ви хочете. Важливо лише те, що він працює.
Так чи інакше, це не зовсім вірно. Оскільки BASIC є частиною нашої культури, і розуміння того, чому воно стало таким, яким воно є - я сподіваюся - допоможе покращити наше бачення світу.
Я сиджу за своїм комп’ютером з бажанням допомогти зберегти цей маленький фрагмент нашої культури, який здається втраченим, замінений нашим здогадом про те, що це було. І так, я перекопав MSDN як поточні, так і старі компакт-диски з версії 1998 року. Я також шукав документацію для старої QBasic [Доводилося використовувати DOSBox] і встиг отримати якийсь посібник з Дартмута, щоб знайти те, як вони говорять 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 User на веб-сторінці True BASIC inc, компанії, заснованої Томасом Євгенієм Курцом , співавтором BASIC.
Отже, на жаль, Dim
це скорочення DIMENSION
, і так. Він існував у FORTRAN раніше, тому, ймовірно, він був обраний під впливом FORTRAN, як сказав Патрік Макдональд у своїй відповіді .
Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)
Dim
насправді
Це коротко для 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
Пізніше його стали використовувати для декларування всіх видів змінних, коли в останніх реалізаціях була додана можливість вказати тип змінних.
Це означає «Вимір», але його зазвичай читають як «Створити змінну» або «Виділити простір для цього».
Змінна декларація. Спочатку це було скороченням "вимір", який не є терміном, який в значній мірі використовується в програмуванні (за межами цього конкретного ключового слова).
http://in.answers.yahoo.com/question/index?qid=20090310095555AANmiAZ
Ще в той день, коли DIM резервував пам'ять для масиву, і коли пам'ять обмежена, ви повинні бути обережними, як ви її використовували. Я колись писав (у 1981 році) програму BASIC на TRS-80 Model III з 48 Кб оперативної пам’яті. Він не працює на аналогічній машині з 16 Кб оперативної пам’яті, поки я не зменшив розмір масиву, змінивши оператор DIM
Ключове слово Dim необов’язково, коли ми використовуємо його з модифікаторами - загальнодоступними, захищеними, друзями, захищеними товаришами, приватними, спільними, тінями, статичними, читаннями тощо тощо, наприклад - Static nTotal As Integer
Для типу довідки нам потрібно використовувати нове ключове слово для створення нового примірника класу чи структури. напрDim lblTop As New System.Windows.Forms.Label
.
Оператор Dim може використовуватися для виводу типу даних, коли для параметра Ofer Infer встановлено значення Увімкнено . У цьому випадку компілятор виводить тип даних змінної з типу її вираження ініціалізації. Приклад:
Option Infer On
Module SampleMod
Sub Main()
Dim nExpVar = 5
Вищенаведене твердження еквівалентно Dim nExpVar As Integer