v8cs:variable-value-type¶
Переменная имеет тип значения (variable-value-type)¶
- Категория:
bsl
Система строгой типизации кода проверяет что каждая переменная имеет тип значения
Неправильно¶
Объявляемая локальная переменная в методе:
Объявляемая переменная в модуле объекта и скрытая инициализация в каком-то методе:
// @strict-types
Перем ПараметрыОбъекта;
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ПараметрыОбъекта = НовыеПараметрыОбъекта();
Если ЗначениеЗаполнено(ПараметрыОбъекта.Парам1) Тогда
// здесь код
КонецЕсли;
КонецПроцедуры
// Возвращаемое значение:
// Структура:
// * Парам1 - Строка -
Функция НовыеПараметрыОбъекта()
Параметры = Новый Структура();
Параметры.Вставить("Парам1", "Строковое значение");
Возврат Параметры;
КонецФункции
Правильно¶
Инициализируйте локальную переменную с пустым значением по умолчанию:
Инициализируйте переменную модуля значением по умолчанию в коде модуля и типизируйте строчным типизирующим комментарием в месте определения переменной.
// @strict-types
Перем ПараметрыОбъекта; // См. НовыеПараметрыОбъекта
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(ПараметрыОбъекта.Парам1) Тогда
// здесь код
КонецЕсли;
КонецПроцедуры
// Возвращаемое значение:
// Структура:
// * Парам1 - Строка -
Функция НовыеПараметрыОбъекта()
Параметры = Новый Структура();
Параметры.Вставить("Парам1", "String value");
Возврат Параметры;
КонецФункции
// Обязательная инициализация значения в коде модуля
ПараметрыОбъекта = НовыеПараметрыОбъекта();
См.¶
Соответствие стандартам¶
Нет подтверждённых связей со стандартами.
Источник диагностики¶
- Исходная статья
- Ревизия:
c8fe7932babf718c0ace3cf836a99d6a3b98d098 - Лицензия:
EPL-2.0