Правила размещения объявлений переменных в VBScript - PullRequest
0 голосов
/ 13 ноября 2018

Есть ли какое-либо правило для размещения объявления переменных в VBScript, например, если оно всегда должно быть объявлено в начале? Или я могу объявить переменную при ее использовании? Какой из них более эффективен?

1 Ответ

0 голосов
/ 13 ноября 2018

Давайте попробуем с простым кодом со включенным Option Explicit, поэтому парсер VBScript запрашивает, чтобы все переменные, используемые в коде, были объявлены

Option Explicit

    WScript.Echo TypeName( data )
    WScript.Echo TypeName( MY_DATA )

Dim data : data = 10
Const MY_DATA = 10

    WScript.Echo TypeName( data )
    WScript.Echo TypeName( MY_DATA )

Когда он будет выполнен, он будет

Empty
Integer
Integer
Integer

То есть

  • При первом доступе к data ошибка не генерируется. Объявление переменной (оператор Dim) поднято. Если переменная объявлена ​​внутри той же (или внешней) области, в которой она будет использоваться, проблем не будет.

  • Но первый вывод - Empty. Поднимается только объявление, а не присвоение значения, которое не выполняется до тех пор, пока не будет достигнута строка, содержащая его.

  • Это не относится к объявлению констант. Его значение заменяется кодом, в котором оно используется, но реальное объявление задерживается до достижения строки const (читайте здесь ).

Пока переменные / константы могут быть достигнуты (они объявлены в той же или внешней области видимости), это не имеет значения (для синтаксического анализатора / механизма VBScript), где вы размещаете объявление.

Но, конечно, вам или другим придется поддерживать код. Возможность размещать переменные в любом месте не означает, что вы должны делать что-то вроде предыдущего кода (пожалуйста, не надо) Код намного проще читать / поддерживать, если объявление переменной выполняется до инициализации / использования. Точный способ сделать это зависит только от стиля кодирования.

...