Версия с is
- это ярлык, когда единственная функция, вызываемая курсором l oop, - item
. Ярлык устраняет необходимость явно вызывать запрос. Таким образом, следующие две версии семантически эквивалентны:
across foo as x loop ... x.item ... end
across foo is x loop ... x ... end
Другими словами, вторая версия может отображаться как автоматически переведенная в
across foo as _x loop ... _x.item ... end
, где _x
недоступен, а x
означает _x.item
.
Тип x
в первой версии - ITERATION_CURSOR [G]
. Во второй версии это тип {ITERATION_CURSOR [G]}.item
, т.е. G
.
Фактически, тип курсора является производным от типа запроса new_cursor
, вызываемого на объекте, на котором выполняется итерация. Однако любые дополнительные функции, доступные в этом типе курсора, доступны только при использовании полной итерационной формы al oop с as
и недоступны при использовании формы быстрого доступа с is
.