Автоматическая инициализация переменных в Delphi

Переменные в Delphi можно разделить на три типа

  • Глобальные
  • Локальные
  • Поля объектов

Разные типы имеют свои особенности инициализация по умолчанию. Глобальные переменные — переменные которые объявлены в теле модуля всегда инициализируются автоматически. Например, числовые типы всегда будут равны нулю.

Локальные переменные — переменные объявленные внутри функций, процедур или методов не инициализируются автоматически. Их значение можно считать случайным. Например, следующий код будет выводить разное сообщение при каждом запуске программы

Опаснее всего ситуация с объектными типами.

В переменной находится случайны адрес, следовательно вызов методов и изменение полей приведёт к непредсказуемым результатам.

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

Выводы

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

Поля объектов можно инициализировать в конструкторе. Это обязательно нужно делать для некоторых типов, например, для Variant, так как по умолчанию они равны Unassigned. Для строк и чисел особого смысла в инициализации нулями и пустыми строками нет, возможно, для унификации.

Ссылки

Раздел документации про переменные.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *