Обращение к процедуре несколькими уровнями выше
От: Khimik  
Дата: 08.11.18 07:40
Оценка:
Извиняюсь если тема не совсем для этого раздела (у меня вопросы скорее конкретно про Delphi), но в ней тоже можно найти “философское начало”.
Мне время от времени не хватает возможность в функции обратиться к результату функции уровнем выше. Нет ли в Delphi таких опций?
Я имею в виду, что моя процедура или функция имеет простые вложенные процедуры или функции, и в них надо обратиться к чему-то уровнем выше. Например, мне надо заменить Values[I] на GetValue(I), которая возвращает Values[I], но заодно что-нибудь проверяет (например, инициализирован ли массив Values) и в случае ошибки возвращает -1. У меня были случаи, когда основная функция как результат возвращает класс, и маленькая подфункция, аналогичная GetValue выше, должна обратиться к свойству этого класса. Тут надо какую-то переменную вроде result[1], result[2] и т.д.
И ещё похожий запрос – когда GetValue нужно вызвать выход (exit) из верхней функции. Ну например GetValue обнаружила глобальную ошибку, из-за которой надо делать большой exit (не из самой GetValue а из той процедуры что над ней). Есть ли в Delphi или других языках что-нибудь вроде exit[1], exit[2] и т.д.?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.