Size: a a a

2020 August 03

p

polunin.ai in rust_offtopic
Alex Zhukovsky
сегодня мне он пригодился в сишарпе
Как
источник

AZ

Alex Zhukovsky in rust_offtopic
написал тайпкласс стратегий вычисления длительности работы курьера
источник

AZ

Alex Zhukovsky in rust_offtopic
и пару реализаций
источник

AZ

Alex Zhukovsky in rust_offtopic
оч хорошо получилось
источник

p

polunin.ai in rust_offtopic
Хм это как
источник

AZ

Alex Zhukovsky in rust_offtopic
Kai Ren
Но, кстати, оптимизатор потом разве не выкинет, если FLAG это константное выражение?
если там будет свитч на 100 вариантов например не факт что компилятор увидит что 99 ветвей мертвые
источник

p

polunin.ai in rust_offtopic
Тацпкласс и пара реализаций
источник

AZ

Alex Zhukovsky in rust_offtopic
я выше показывал. Через эмуляцию имплиситов
источник

p

polunin.ai in rust_offtopic
Ну импилисит тайпкласса понятно как сделать
источник

p

polunin.ai in rust_offtopic
А чем здесь не угодили для этой роли интерфейс и два класса реализующего его?
источник

KR

Kai Ren in rust_offtopic
polunin.ai
А чем здесь не угодили для этой роли интерфейс и два класса реализующего его?
ти шо...
...нельзя же реализовать интерфейс не для своего типа!
источник

AZ

Alex Zhukovsky in rust_offtopic
тем что
а) мне нужно чтобы при мономорфизации не осталось вызова. Хотя бы по чисто эстетическими причинам
б) его нужно через DI прокидывать
источник

AZ

Alex Zhukovsky in rust_offtopic
в итоге можно, но это просто более плохое решение
источник

KR

Kai Ren in rust_offtopic
А почему тайпкласс не надо через ДИ прокидывать?
источник

AZ

Alex Zhukovsky in rust_offtopic
я же говорил, изучение других парадигм помогает лучше писать на знакомых япах
источник

AZ

Alex Zhukovsky in rust_offtopic
это значит что то решение которое я щас делаю просто заменяет другое которое я бы раньше написал, и чем-то лучше
источник

AZ

Alex Zhukovsky in rust_offtopic
Kai Ren
А почему тайпкласс не надо через ДИ прокидывать?
потому что он типом задаётся
источник

AZ

Alex Zhukovsky in rust_offtopic
ты делаешь Foo<MyImplementationTypeClass>(params) // тут уже не нужно передавать инстанс типа MyImplementationTypeClass, сам вызов с генериком уже всю необходимую информацию несёт
источник

AZ

Alex Zhukovsky in rust_offtopic
а через DI у тебя получается что-то вроде
Foo(params, myDi.GetService<MyImplementation())
источник

Ct

Casual tears in rust_offtopic
Alex Zhukovsky
если там будет свитч на 100 вариантов например не факт что компилятор увидит что 99 ветвей мертвые
Мне кажется если у тебя матч по константе, то вообще не важно сколько там бранчей.
источник