Перейти к основному содержимому

Настойчивая операция «!»

Операция ! (настойчивая операция) указывает, что в данном месте в момент выполнения не может быть значения Неопределено. Если это оказывается не так, то выбрасывается исключение.

! также называется операцией отбрасывания значения Неопределено.

Синтаксис

выражение!

Операция ! может использоваться в левой части инструкции присваивания.

Примеры

Пример 1. Поиск максимального элемента в массиве
метод НайтиМаксимум(Числа: Массив<Число>): Строка
если Числа.Размер() == 0
возврат "Массив не содержит элементов."
;
// Отсортируем числа по убыванию
знч ЧислаПоУбыванию = Числа.Сортировать((а, б) -> б - а)
// Вернем первое число в отсортированном массиве.
// Так как массив гарантированно не пуст, метод ПервыйИлиНеопределено()
// никогда не вернет "Неопределено", поэтому этот тип можно исключить
знч Максимум = ЧислаПоУбыванию.ПервыйИлиНеопределено()!.ВСтроку()
возврат "Максимальное число в массиве: " + Максимум
;
Пример 2. Работа со структурами
// Структура для хранения информации о сотруднике
структура Сотрудник
обз пер Имя: Строка
пер Адрес: Адрес?
;

// Структура для хранения адреса сотрудника
структура Адрес
обз пер Страна: Строка
пер Город: Строка?
;

метод СоздатьСотрудника()
// Создадим экземпляр структуры "Сотрудник"
знч Сотрудник = новый Сотрудник("Иванов А. И.", новый Адрес("Россия"))
// Зададим значение поля "Город".
// Так как адрес сотрудника указан при инициализации, выражение "Сотрудник.Адрес"
// никогда не вернет "Неопределено", поэтому этот тип можно исключить
Сотрудник.Адрес!.Город = "Москва"
;