Size: a a a

AI Cups Official

2021 February 08

O

Opera in AI Cups Official
Yevhen Kazmin
У тебя там unwrap, значит она уже гарантированно небезопасна. Раст даёт возможность нежелаемое поведение захендлить
Этот анврап вроде на пустоту массива просто
источник

YK

Yevhen Kazmin in AI Cups Official
Opera
Этот анврап вроде на пустоту массива просто
После partial_cmp
источник

YK

Yevhen Kazmin in AI Cups Official
Как раз на случай NaN
источник

O

Opera in AI Cups Official
Там _or, он не кидает
источник

YK

Yevhen Kazmin in AI Cups Official
Ну вот по сути ты и добавил кастомное поведение в случае сравнения с NaN, да немного времени сьело, но теперь ты уверен как оно будет работать
источник

O

Opera in AI Cups Official
Ну окей, а можно было добавить в СТД максимум который выкидывает ошибку если не может сравнить?
источник

VT

Valery Teplyakov in AI Cups Official
А потом баги самому же искать
источник

YK

Yevhen Kazmin in AI Cups Official
Opera
и назвать её как нибудь max_or_equal
А вдруг у других людей ожидаемое поведение другое
источник

YK

Yevhen Kazmin in AI Cups Official
Opera
Ну окей, а можно было добавить в СТД максимум который выкидывает ошибку если не может сравнить?
СТД ещё развивается)
источник

YK

Yevhen Kazmin in AI Cups Official
Возможно в nigthly уже что-то есть
источник

YK

Yevhen Kazmin in AI Cups Official
Мне когда я писал КГ очень не хватало const generics
источник

YK

Yevhen Kazmin in AI Cups Official
А они только в nightly
источник

VK

Vitaliy Kudasov in AI Cups Official
Opera
ну это методы в Ord. А вот например почему бы не дать функцию максимума в массиве если тебе все равно на NaN и прочее?
если пофиг на nan делают тип обертку над f32/f64 для которой определен полный порядок, есть готовые крейты. единственное что мне не нравится это невозможность написать let x: Real32 = 123.456, надо писать Real32::new(123.456). В хаскеле например сделано вроде это нормально, а в расте почему то нет
источник

VK

Vitaliy Kudasov in AI Cups Official
SilentNox
У С++ больше кодовая база, у С# есть некоторые фичи, которые в расте не ожидаются
что за фичи у шарпа? linq?
источник

S

SilentNox in AI Cups Official
Vitaliy Kudasov
что за фичи у шарпа? linq?
Рефлексия
источник

VK

Vitaliy Kudasov in AI Cups Official
SilentNox
Рефлексия
эта "фича" делает яву и шарпы ближе к скриптовым языкам чем к компилируемым
источник

S

SilentNox in AI Cups Official
Vitaliy Kudasov
эта "фича" делает яву и шарпы ближе к скриптовым языкам чем к компилируемым
Ну так шарп это и есть скриптовый язык по сути..
источник

VK

Vitaliy Kudasov in AI Cups Official
просто это влияет на производительность достаточно сильно, в расте можно порефлексировать в компайл тайме при желании
источник

S

SilentNox in AI Cups Official
Vitaliy Kudasov
просто это влияет на производительность достаточно сильно, в расте можно порефлексировать в компайл тайме при желании
А у него для этого есть встроенный функционал, или внешними тулзами все делается?
источник

VK

Vitaliy Kudasov in AI Cups Official
ну это наверно самое неприятное из всей работы с растом (хотя это очень редко нужно), но по сути ты можешь написать плагин в компилятор который на входе получает код и на выходе отдает код
источник