Spec-Zone.ru › Nim 1

lenientops

Этот модуль предлагает реализации общих бинарных операций, таких как +, -, *, /, и операций сравнения, которые работают с смешанными операндами с плавающей запятой/целыми числами. Все операции преобразуют целочисленный операнд в тип операнда с плавающей запятой. Для числовых выражений возвращаемый тип всегда является типом плавающей запятой, участвующей в выражении, т. е. нет автоматического преобразования из float32 в float64.

Примечание: В общем случае автоматическое преобразование из целого числа в число с плавающей запятой приводит к потере информации, поэтому эти операторы находятся в отдельном модуле. Используйте с осторожностью.

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

Процедуры

proc `+`[I: SomeInteger; F: SomeFloat](i: I; f: F): F {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `+`[I: SomeInteger; F: SomeFloat](f: F; i: I): F {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `-`[I: SomeInteger; F: SomeFloat](i: I; f: F): F {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `-`[I: SomeInteger; F: SomeFloat](f: F; i: I): F {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `*`[I: SomeInteger; F: SomeFloat](i: I; f: F): F {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `*`[I: SomeInteger; F: SomeFloat](f: F; i: I): F {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `/`[I: SomeInteger; F: SomeFloat](i: I; f: F): F {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `/`[I: SomeInteger; F: SomeFloat](f: F; i: I): F {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `<`[I: SomeInteger; F: SomeFloat](i: I; f: F): bool {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `<`[I: SomeInteger; F: SomeFloat](f: F; i: I): bool {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `<=`[I: SomeInteger; F: SomeFloat](i: I; f: F): bool {...}{.noSideEffect, inline.}
Исходный код Редактировать
proc `<=`[I: SomeInteger; F: SomeFloat](f: F; i: I): bool {...}{.noSideEffect, inline.}
Исходный код Редактировать

© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/lenientops.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API