"батон"→65
"багет"→80
Два способа прочитать значение по ключу — с разным поведением при его отсутствии.
Соответствие = Новый Соответствие;
Соответствие.Вставить("батон", 65);
Значение = Соответствие.Получить("батон"); // 65
Значение = Соответствие["батон"]; // 65 — то же самое
Значение = Соответствие.Получить("рогалик"); // Неопределено — исключения нет
Значение = Соответствие["рогалик"]; // ошибка выполнения| Способ | Ключа нет |
|---|---|
Получить(Ключ) | возвращает Неопределено, исключения нет |
Соответствие[Ключ] | исключение времени выполнения |
Получить(Ключ)
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
Ключ | Произвольный | Да | ключ искомой пары |
Возвращает: Произвольный — значение по ключу, либо Неопределено, если такого ключа в соответствии нет. Второго, выходного параметра у метода нет — в отличие от Свойство() у структуры, здесь сразу один результат на обе задачи, и чтение, и проверку:
Значение = Соответствие.Получить("рогалик");
Если Значение = Неопределено Тогда
// ключа не было (либо значением было именно Неопределено — способ их не различает)
КонецЕсли;У соответствия нет отдельного метода проверки наличия ключа, как Свойство() у структуры, — Получить() закрывает обе задачи разом, ценой этой самой неоднозначности между «ключа нет» и «ключ есть, а значение — Неопределено». Если разница принципиальна — различить можно через [] внутри Попытка, поскольку она (в отличие от Получить()) бросает исключение именно на отсутствующем ключе:
Попытка
Значение = Соответствие[Ключ];
КлючЕсть = Истина;
Исключение
КлючЕсть = Ложь;
КонецПопытки;