Size: a a a

2020 May 10

p

polunin.ai in rust_offtopic
да код покажи
источник

MB

Mikail Bagishov in rust_offtopic
Stanislav Popov
но мне не надо клонировать кек
Тогда ты потратишь ее при вызове
источник

SP

Stanislav Popov in rust_offtopic
Mikail Bagishov
Тогда ты потратишь ее при вызове
ну вот не понимаю схуяли
источник

G

Gymmasssorla in rust_offtopic
Stanislav Popov
есть какието общие принципы?
короче компилятор тебе говорит что эта функция по сути овладевает данными, чтобы она не овладевала тебе нужно положить данные в Arc и клонировать внутри функции уже его, при том если асинк, то нужно ПЕРЕД блоком асинка клонировать арк, чтобы асинк не забрал его себе раньше времени. вот так: https://github.com/teloxide/teloxide/blob/master/src/dispatching/dialogue/dialogue_dispatcher.rs#L84
источник

p

polunin.ai in rust_offtopic
опять гадатели
источник

p

polunin.ai in rust_offtopic
без кода говорят что делать
источник

p

polunin.ai in rust_offtopic
научите
источник

SP

Stanislav Popov in rust_offtopic
polunin.ai
без кода говорят что делать
там не все так однозначно лол
источник

SP

Stanislav Popov in rust_offtopic
ща
источник

MB

Mikail Bagishov in rust_offtopic
Stanislav Popov
ну вот не понимаю схуяли
Ну посмотрим на
struct Foo(String);

impl Fn() -> String for Foo {
   fn call(&self) -> String {
       self.0
   }
}

Ты согласен, что это кривой код?
источник

G

Gymmasssorla in rust_offtopic
Gymmasssorla
короче компилятор тебе говорит что эта функция по сути овладевает данными, чтобы она не овладевала тебе нужно положить данные в Arc и клонировать внутри функции уже его, при том если асинк, то нужно ПЕРЕД блоком асинка клонировать арк, чтобы асинк не забрал его себе раньше времени. вот так: https://github.com/teloxide/teloxide/blob/master/src/dispatching/dialogue/dialogue_dispatcher.rs#L84
да попробуй это
источник

G

Gymmasssorla in rust_offtopic
инфа сотка сработает
источник

SP

Stanislav Popov in rust_offtopic
источник

p

polunin.ai in rust_offtopic
где ошибка
источник

SP

Stanislav Popov in rust_offtopic
ошибка в последнем move
источник

MB

Mikail Bagishov in rust_offtopic
y это Fn, потому что оно разрушает h
источник

p

polunin.ai in rust_offtopic
Mikail Bagishov
y это Fn, потому что оно разрушает h
() - Copy
источник

G

Gymmasssorla in rust_offtopic
потому что мап не fnonce принимает, а fnmut
источник

SP

Stanislav Popov in rust_offtopic
можно как то аннотировать переменную как Fn?
источник

NL

Nick Linker in rust_offtopic
Victor Sapiens
И так факты - получил ты ссылку на какие-то данные в метод или функцию. Изменил их. Без ссылочной прозрачности характерной для ФП ещё кто-то может изменить по ссылке как-то по другому эти данные. Если это происходит в многопоточном окружении это может произойти еще и пока твой метод выполняется. В общем то можно хоро и без ссылочной прозрачности писать но это писец каких затрат сил и бойлерплейта требует. Вот эти все IRepository и прочее это же для того чтобы ты точно знал что вот сейчас будет запись в базу а не в какой-то непонятный момент ты выставил значение свойству и тут бабах
А статьи на хабре у тебя есть по этой тематике?
Я доводы _"зачем мне ФП если у меня есть хороший дебаггер и усидчивая натура":-) слышу регулярно, и у тебя вроде неплохо получается аргументы излагать. Ты вообще в какой области работаешь?
источник