Правило типизации
Правило типизации
Правило типизации, делающее допустимым первый набор и недопустимым второй, интуитивно понятно, но его надо уточнить.
Вначале рассмотрим обычные, не родовые классы. Пусть C такой класс. Рассмотрим объявление его компонента, не использующее, естественно, никаких формальных родовых параметров:
f(a:T):U is ...
Тогда вызов вида x.f(d), появляющийся в произвольном классе B, где x типа C, будет корректен по типу, тогда и только тогда, когда:
[x]. f доступен классу B, - экспортирован всем классам или множеству классов, включающих B;
[x]. d принадлежит типу T. Если учитывать возможность наследования, то d может принадлежать потомкам T.
[x]. Результат вызова имеет тип U. В этом примере предполагается, что компонент f является функцией.
Теперь предположим, что C родовой класс с формальным родовым параметром G имеет компонент:
h (a: G): G is...
Вызов h имеет вид y.h(e), где y сущность, объявленная как
y: C [V]
Тип V - некоторый ранее определенный тип. Теперь правило типизации - двойник неродового правила - требует, чтобы e имело тип V или при наследовании было потомком V. Аналогичное требование к результату выполнения функции h.
Требования правила понятны: V - фактический параметр, заменяющий формальный родовой параметр G параметризованного класса C, поэтому он заменяет все вхождения G при вызове компонент класса. Все предыдущие примеры следовали этой модели: вызов s.put(z) требует параметра z типа POINT, если s типа STACK [POINT]; INTEGER если s типа STACK [INTEGER]; и s.item возвращает результат типа POINT в первом случае и типа INTEGER во втором.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Общее правило
Общее правило Следующий шаг – написать общее правило, которое абсолютно спозиционирует каждое изображение внутри элемента списка и, соответственно, поверх изображения Луны.Каждый элемент будет спозиционирован по-своему в зависимости от объекта; также будут
7.5. Правило @media
7.5. Правило @media Правило @media позволяет задавать правила CSS для различных устройств в пределах одной таблицы стилей, разделенных запятыми. Иными словами, вы можете задать для одного и того же элемента один размер шрифта для печати, а другой для просмотра на
7.7. Правило @import
7.7. Правило @import Правило @import позволяет импортировать правила стилей из других таблиц стилей. Массив правил @import должен предшествовать всем другим правилам в таблице стилей. После ключевого слова @import должен следовать URL-адрес таблицы стилей, которую необходимо
Правило большинства
Правило большинства При планировании сайта исходите из того, что ваш клиент – начинающий пользователь, а не компьютерный гений. В этом и заключается правило большинства.Компьютерный гений при покупке товара вообще не обратит внимания на удобство сайта, так что его
Правило правой руки
Правило правой руки При работе в трехмерном пространстве в AutoCAD все системы координат формируются по правилу правой руки. Оно определяет положительное направление оси Z трехмерной системы координат при известных направлениях осей X и Y, а также положительное направление
4.2.3. Правило SPOT
4.2.3. Правило SPOT В книге "The Pragmatic Programmer" формулируется правило для одного частного вида ортогональности, который является особенно важным. Это правило "не повторяйтесь": внутри системы каждый блок знаний должен иметь единственное, недвусмысленное и надежное представление.
Правило 55: Познакомьтесь с Boost
Правило 55: Познакомьтесь с Boost Вы ищете высококачественные библиотеки с открытым кодом, независимые от платформ и компиляторов? Boost к вашим услугам. Вы хотели бы присоединиться к сообществу амбициозных, талантливых программистов на C++, работающих в русле современных
4.2.3. Правило SPOT
4.2.3. Правило SPOT В книге "The Pragmatic Programmer" формулируется правило для одного частного вида ортогональности, который является особенно важным. Это правило "не повторяйтесь": внутри системы каждый блок знаний должен иметь единственное, недвусмысленное и надежное представление.
Правило третей
Правило третей Правило третей – это упрощенный вариант правила золотого сечения. Примечание Чтобы получить золотое сечение отрезка, его разбивают на две части таким образом, что соотношение его меньшей части к большей равно соотношению большей части ко всему отрезку.
Роль типизации
Роль типизации Зачем настаивать на явном объявлении типов (первое из двух требований)? Это часть главного вопроса о типизации, которому в этой книге посвящена отдельная лекция (лекция 17). Но уже сейчас можно указать две основные причины, по которым ОО-программа должна быть
Правило переименования
Правило переименования В этом разделе мы не введем никаких новых понятий, а лишь точнее сформулируем известные правила и приведем пример, призванный пояснить сказанное.Начнем с запрета возникновения конфликта имен:Определение: финальное имяФинальным именем компонента
Правило языка
Правило языка Правило Утверждений Переобъявления, так как оно сформулировано, является концептуальным руководством. Как преобразовать его в безопасное и проверяемое правило языка?В принципе, чтобы убедиться в том, что старые предусловия влекут новые, а новые
Проблема типизации
Проблема типизации Эффективное применение объектной технологии требует четкого описания в тексте системы типов всех объектов, с которыми она работает на этапе выполнения. Это правило, известное как статическая типизация (static typing), делает наше ПО:[x]. более надежным,
Правила типизации
Правила типизации Наша ОО-нотация является статически типизированной. Ее правила типов были введены в предыдущих лекциях и сводятся к трем простым требованиям.[x]. При объявлении каждой сущности или функции должен задаваться ее тип, например, acc: ACCOUNT. Каждая подпрограмма
Аргументы в пользу динамической типизации
Аргументы в пользу динамической типизации Несмотря на все это, динамическая типизация не теряет своих приверженцев, в частности, среди Smalltalk-программистов. Их аргументы основаны прежде всего на реализме, речь о котором шла выше. Они уверены, что статическая типизация
Глава 23. Правило 20 на 80
Глава 23. Правило 20 на 80 Полная отдача от ХР получается только тогда, когда в силу вступают все методики. Многие практики можно вводить в силу постепенно, однако если все они введены в действие, общий эффект от их использования равен произведению между ними.Разработчики