Книга: Основы объектно-ориентированного программирования
Синонимичная инфиксная операция
Синонимичная инфиксная операция
Класс ARRAY предоставляет возможность, косвенно относящуюся к вопросам этой лекции, но полезную на практике. Объявление компонента item фактически определяет и его синоним - инфиксную операцию10.4) следующим образом:
infix "@", item (i: INTEGER): G is...
Здесь задаются два имени компонента: infix "@" и item как синонимы, обозначающие один и тот же компонент, заданный определением.
В общем, объявление компонентов в форме:
a, b, c... "Описание компонента"
рассматривается как краткая форма записи последовательности объявлений:
a "Описание компонента"
b "Описание компонента"
c "Описание компонента"
...
с одним и тем же "Описанием компонента".
Это применимо как для атрибутов (где "Описание компонента" имеет форму: некоторый_тип), так и для подпрограмм (is тело_программы).
Нотация, применяемая в этом примере для доступа к массиву, достаточно проста. Она совместима с механизмами доступа для других структур, хотя, заметим, инструкция a.item(i) более многословна, чем традиционное a[i], встречающееся с некоторыми вариациями в Pascal, C, Fortran и других языках. Определяя "@" как синоним item, можно превзойти традиционные языки в их собственной игре за краткость записи. Написав a @ i, реализуем мечту, - запись требует на одно нажатие клавиши меньше, чем даже С++!. Заметим снова, что это не специальный механизм языка, но прямое применение общей ОО-концепции, компонент-оператора, скомбинированного с нотацией синонима.
- Удобная операция объединения строк
- 1. Унарная операция выборки
- 2. Унарная операция проекции
- 3. Унарная операция переименования
- 1. Операция выборки.
- 2. Операция проекции.
- 3. Операция переименования.
- 1. Операция объединения.
- 2. Операция пересечения.
- 3. Операция разности.
- 4. Операция декартова произведения.
- 6. Операция естественного соединения.