Синонимичная инфиксная операция

Синонимичная инфиксная операция

Класс 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, реализуем мечту, - запись требует на одно нажатие клавиши меньше, чем даже С++!. Заметим снова, что это не специальный механизм языка, но прямое применение общей ОО-концепции, компонент-оператора, скомбинированного с нотацией синонима.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Операция

Из книги Самоучитель UML автора Леоненков Александр

Операция В третьей сверху секции прямоугольника записываются операции или методы класса. Операция (operation) представляет собой некоторый сервис, предоставляющий каждый экземпляр класса по определенному требованию. Совокупность операций характеризует функциональный


8.5.11 Функция Операция

Из книги C++ автора Хилл Мюррей

8.5.11 Функция Операция Большинство операций могут быть перегружены с тем, чтобы они могли получать в качестве операндов объекты класса.имя_функции_операции: operator операцияоперация: одна из new delete + – * / % ^ amp; ! ~ ! = « » += -= *= /= %= ^= amp;= != «„ “» «„= “»= == != «= »= amp; amp; !! ++ – () []Последние


1. Операция выборки.

Из книги Базы данных: конспект лекций автора Автор неизвестен

1. Операция выборки. Операция выборки на языке SQL реализуется оператором Select следующего вида: Select все атрибуты From имя отношения Where условие выборки; Здесь вместо того, чтобы писать «все атрибуты», можно использовать значок «*». В теории языка структурированных запросов


2. Операция проекции.

Из книги Справочное руководство по C++ автора Страустрап Бьярн

2. Операция проекции. Операция проекции на языке структурированных запросов реализуется даже проще, чем операция выборки. Напомним, что при применении операции проекции выбираются не строки (как при применении операции выборки), а столбцы. Поэтому достаточно перечислить


3. Операция переименования.

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

3. Операция переименования. Операция переименования атрибутов на языке структурированных запросов осуществляется довольно просто. А именно воплощается в действительность следующим алгоритмом:1) в списке имен атрибутов фразы Select перечисляются те атрибуты, которые


1. Операция объединения.

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

1. Операция объединения. Для того чтобы реализовать операцию объединения двух отношений приходится использовать одновременно два оператора Select, каждый из которых соответствует какому-то одному из исходных отношений-операндов. И к этим двум базовым операторам Select


2. Операция пересечения.

Из книги C++ для начинающих автора Липпман Стенли

2. Операция пересечения. Операция пересечения и операция разности двух отношений на языке структурированных запросов реализуются похожим образом (мы рассматриваем наиболее простой способ представления, так как, чем проще метод, тем он экономичнее, актуальнее и,


3. Операция разности.

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

3. Операция разности. Как уже было сказано ранее, унарная операция разности двух отношений реализуется аналогично операции пересечения. Здесь также, кроме главного запроса с оператором Select, используется второй, вспомогательный запрос – так называемый подзапрос.Но в


R.16.3.1 Операция #

Из книги автора

R.16.3.1 Операция # Если непосредственно перед параметром в строке замены идет лексема #, то при подстановке параметр и операция # будут заменены на строку литералов, содержащую имя соответствующего параметра макровызова. В символьной константе или строке литералов,


R.16.3.2 Операция ##

Из книги автора

R.16.3.2 Операция ## Если в строке замены между двумя лексемами, одна из которых представляет параметр макроопределения, появляется операция ##, то сама операция ## и окружающие ее обобщенные пробелы удаляются. Таким образом, результат операции ## состоит в конкатенации.Пусть


Операция ??

Из книги автора

Операция ?? Еще одной особенностью типов с разрешением принимать значения null, о которой вам следует знать, является то, что с такими типами можно использовать появившуюся в C# 2005 специальную операцию, обозначаемую знаком ??. Эта операция позволяет присвоить типу значение,


Условная операция

Из книги автора

Условная операция В языке Си имеется одна тернарная операция — уловная. Она имеет следующий синтаксис:<операнд1> ? <операнд2>: <операнд3>Выражение <операнд1> вычисляется и сравнивается с нулем. Выражение может иметь целый, плавающий тип, либо быть указателем.


12.6.1. Операция list_merge()

Из книги автора

12.6.1. Операция list_merge() void list::merge( list rhs, Compare comp );Элементы двух упорядоченных списков объединяются либо на основе оператора "меньше", определенного для типа элементов в контейнере, либо на основе указанной пользователем операции сравнения. (Заметьте, что элементы списка rhs


Операция @

Из книги автора

Операция @ Операция @ применяется к переменной и возвращает ее адрес. Тип результата представляет собой типизированный указатель на тип переменной. Например: var r: real; pr: ^real := @r;


Операция new

Из книги автора

Операция new Операция new имеет вид: new ИмяКласса(ПараметрыКонструктора) Она вызывает конструктор класса ИмяКласса и возвращает созданный объект.Например: type My = class constructor Create(i: integer); begin end; end; var m: My := new My(5); Эквивалентным способом создания объекта является вызов