Size: a a a

Kotlin Community

2020 May 21

IO

Iaroslav Orlov in Kotlin Community
ну, да.
источник

IO

Iaroslav Orlov in Kotlin Community
но я про то, что у Number'а его нет
источник

BP

Bogdan Panchenko in Kotlin Community
Iaroslav Orlov
rangeTo - это тоже оператор, который определяется конкретно у каждого числового типа
Так зачем делать функцию эсли есть готовое 🤔
источник

VP

Vladimir Petrakovich in Kotlin Community
Iaroslav Orlov
rangeTo - это тоже оператор, который определяется конкретно у каждого числового типа
У любого сравнимого, включая все распространённые Number'ы
источник

VP

Vladimir Petrakovich in Kotlin Community
Bogdan Panchenko
Так зачем делать функцию эсли есть готовое 🤔
Может, там надо другое поведение на границах
источник

IO

Iaroslav Orlov in Kotlin Community
Vladimir Petrakovich
У любого сравнимого, включая все распространённые Number'ы
но придется писать конкретные проверки типа
источник

IO

Iaroslav Orlov in Kotlin Community
такие как if (a is Int) a in min..max
источник

VP

Vladimir Petrakovich in Kotlin Community
Iaroslav Orlov
но придется писать конкретные проверки типа
В смысле? Я могу написать хоть Instant.now() in Instant.EPOCH..Instant.now().plusSeconds(1)
источник

IO

Iaroslav Orlov in Kotlin Community
ой, видимо там навесили экстеншен на Comparable<T>
источник

VP

Vladimir Petrakovich in Kotlin Community
Ну так диапазоны существуют для всего сравнимого 🙂
источник

BP

Bogdan Panchenko in Kotlin Community
Iaroslav Orlov
ой, видимо там навесили экстеншен на Comparable<T>
А как по другому ?  Оно вроде всегда было
источник

VP

Vladimir Petrakovich in Kotlin Community
Iaroslav Orlov
но придется писать конкретные проверки типа
Вот это только для избежания боксинга
источник

IO

Iaroslav Orlov in Kotlin Community
ну, если подытожить, то подходит либо ClosedRange.contains, либо дженерик
источник

Д

Дмитрий in Kotlin Community
Спасибо! Сделал так fun <T> T.isBetween(minValue: T, maxValue: T): Boolean where T : Comparable<T>
источник

IO

Iaroslav Orlov in Kotlin Community
кстати, можно обойтись без where, если тип только один: fun <T : Comparable<T>>...
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
кстати, можно обойтись без where, если тип только один: fun <T : Comparable<T>>...
+
источник

Д

Дмитрий in Kotlin Community
Ага разный сахар
источник

IO

Iaroslav Orlov in Kotlin Community
where - это по-моему самый редкий синтаксис после реализации через делегировании
источник

AN

Alexander Nozik in Kotlin Community
Дмитрий
Ага разный сахар
не сахар. where - это довольно нелепая консрукция для пересечения типов. Она очень редко используется. Надеюсь будет заменена в будущем
источник

IO

Iaroslav Orlov in Kotlin Community
Alexander Nozik
не сахар. where - это довольно нелепая консрукция для пересечения типов. Она очень редко используется. Надеюсь будет заменена в будущем
а смысл её убирать?
источник