Максимум 2 INTEGERS? - PullRequest
       13

Максимум 2 INTEGERS?

0 голосов
/ 20 сентября 2018

Каков синтаксис для максимум 2 INTEGERS?

Документация Eiffel настолько плоха, что буквально нигде не смог найти ответ на этот простой вопрос!

Или он не существует, и ядолжны использовать операторы if?

1 Ответ

0 голосов
/ 22 сентября 2018

В большинстве случаев в Eiffel источником является вся необходимая документация.Щелкнув правой кнопкой мыши на имени класса в EiffelStudio, вы можете увидеть его дерево предков.Вы также можете использовать функцию плоского представления, чтобы увидеть все унаследованные объекты класса в одном и том же редакторе.

Как правило, INTEGER является псевдонимом для INTEGER_32.INTEGER_32 наследуется от COMPARABLE (до INTEGER_32_REF).COMPARABLE обеспечивает функции max и min.Их подпись

max (other: like Current): like Current

означает, что все потомки COMPARABLE берут и возвращают другое значение того же типа, что и они сами.

Следовательно:

local
  a, b, maximum: INTEGER
do
  a := <some value>
  b := <some value>
  maximum := a.max(b) -- or b.max(a)
end

Eiffel имеетунифицированная система типов, которая означает, что каждый тип определяется как класс, даже «примитивные» типы, которые получают специальную обработку в большинстве других языков.INTEGER, CHARACTER, BOOLEAN, ARRAY и другие подобные базовые типы, таким образом, поставляются с богатым набором функций, которые вы можете просматривать в своих собственных файлах классов, как и в случае с любым другим типом.Поскольку операторы также определены как обычные функции, это также способ точно определить, какие операторы существуют для любого данного класса.

...