Циркулярная ссылка - Circular reference - Wikipedia
А циркулярная ссылка это серия Рекомендации где последний объект ссылается на первый, что приводит к замкнутому циклу.
На языке
Циклическую ссылку не следует путать с логической ошибкой круговой аргумент. Хотя циклическая ссылка часто бывает бесполезной и не раскрывает никакой информации, например, две записи в указателе книги, ссылающиеся друг на друга, это не обязательно так, что циклическая ссылка бесполезна. Словари, например, всегда должны быть круговой ссылкой, поскольку все слова в словаре определяются в терминах других слов, но словарь, тем не менее, остается полезным справочником. Предложения, содержащие циклические ссылки, могут иметь смысл:
- Ее брат подарил ей котенка; его сестра поблагодарила его за это.
круговой, но не лишенный смысла. В самом деле, можно утверждать, что самоотнесение является необходимым следствием аристотелевской теории. Закон непротиворечия, фундаментальный философский аксиома. С этой точки зрения, без ссылки на себя, логика и математика становится невозможным или, по крайней мере, лишается полезности.[1][2]
В компьютерном программировании
Циркулярные ссылки могут появляться в компьютерное программирование когда один фрагмент кода требует результата от другого, а этому коду требуется результат от первого. Например, две функции posn и plus1 в следующей программе Python содержат циклическую ссылку:[требуется дальнейшее объяснение ]
def Posn(k: int) -> int: если k < 0: возвращаться плюс1(k) возвращаться kdef плюс1(п: int) -> int: возвращаться Posn(п + 1)
>>> Posn(-1)0
Циклические ссылки, подобные приведенному выше примеру, могут возвращать допустимые результаты, если они имеют условие завершения. Если нет условия завершения, циклическая ссылка приводит к состоянию, известному как лайвлок.
В стандарте ISO ограничения циклической целостности SQL неявно поддерживаются в пределах одной таблицы. Между несколькими таблицами разрешены круговые ограничения (например, внешние ключи) путем определения ограничений как отложенных (см. СОЗДАТЬ ТАБЛИЦУ для PostgreSQL и Примеры ограничений DEFERRABLE для Oracle). В этом случае ограничение проверяется в конце транзакции, а не во время выполнения оператора DML. Чтобы обновить циклическую ссылку, в одной транзакции могут быть выполнены два оператора, которые удовлетворят обе ссылки после фиксации транзакции.
В таблицах
Циркулярные ссылки также встречаются в электронные таблицы когда две ячейки требуют результата друг друга. Например, если значение в ячейке A1 должно быть получено путем добавления 5 к значению в ячейке B1, а значение в ячейке B1 должно быть получено путем добавления 3 к значению в ячейке A1, никакие значения не могут быть вычислены. (Даже если указаны спецификации A1: = B1 + 5 и B1: = A1-5, круговая ссылка все равно присутствует. Не помогает, например, что A1 = 3 и B1 = -2 удовлетворяют обеим формулам, так как существует бесконечно много других возможных значений A1 и B1, которые удовлетворяют обоим экземплярам.)
Круговые ссылки на рабочих листах могут быть очень полезным методом для решения неявных уравнений, таких как Уравнение Коулбрука и многие другие, которые в противном случае могут потребовать утомительных алгоритмов Ньютона-Рафсона в VBA или использования макросов.[3]
Следует проводить различие между процессами, содержащими циклическую ссылку, между невычисляемыми и повторяющимися вычислениями с конечным результатом. Последние могут не работать в таблицах, не оборудованных для их обработки, но, тем не менее, логически действительны.[2]
Смотрите также
- Причинно-следственная связь - как один процесс влияет на другой
- Циркулярная отчетность - Проблема, когда источник откуда-то получает информацию, которая затем использует этот источник в качестве ссылки.
- Проблема с остановкой - Проблема с определением, завершит ли данная программа выполнение или продолжится вечно
- Вложенная функция
- Аргумент регресса - Проблема эпистемологии в том, что любое предложение можно бесконечно ставить под сомнение.
- Самостоятельная ссылка - Предложение, идея или формула, относящиеся к самой себе
- В моем ведре дыра - Детская песня
Рекомендации
- ^ Терри А. Осборн, Будущее обучения иностранным языкам в США, стр 31-33, издательство Greenwood Publishing Group, 2002 г. ISBN 0-89789-719-6.
- ^ а б Роберт Фиенго, Роберт Мэй, Индексы и идентичность, стр.59-62, MIT Press, 1994 ISBN 0-262-56076-3.
- ^ «Решите неявные уравнения внутри вашего рабочего листа. Авторы Анилкумар М., доктор Шринивасан Э. и доктор Рагхунатан К.». Архивировано из оригинал на 2009-08-17. Получено 2009-06-25..