Size: a a a

pro.graphon (and gamedev)

2020 March 30

d

disba1ancer in pro.graphon (and gamedev)
Lain-dono
Что-то, что реализует некий интерфейс. Это может быть Future или FnOnce/Fn/FnMut.

А Future и инфраструктура вокруг этого это примерно то, что ты делаешь. Асинхронщина, таски и всё такое.
т.е. у нас это будет что-то типа указателя на на интерфейс?
источник

L

Lain-dono in pro.graphon (and gamedev)
disba1ancer
т.е. у нас это будет что-то типа указателя на на интерфейс?
Хм. Наверное трейты ближе к концептам из С++ 20, но я могу ошибаться.
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
В расте не так же. Трейты не похожи на концепты
источник

L

Lain-dono in pro.graphon (and gamedev)
Mikola Summer Duck
В расте не так же. Трейты не похожи на концепты
Я не так хорошо знаю C++, чтоб понимать, что самое близкое по семантике.
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
Можно сказать что все указатели на замыкания в расте реализуют один из трех базовых классов (Fn, FnMut, FnOnce), выбираемых компилятором.
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
Michael Kharitonov
У тебя Лара это научный интерес?) Сколько я тут ты постоянно что-то от туда постишь )
это песочница для меня
источник

MK

Michael Kharitonov in pro.graphon (and gamedev)
Timur Gagiev
это песочница для меня
Понял. Вообще интересно конечно )
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
При этом FnOnce: FnMut, FnMut: Fn.
источник

L

Lain-dono in pro.graphon (and gamedev)
Mikola Summer Duck
Можно сказать что все указатели на замыкания в расте реализуют один из трех базовых классов (Fn, FnMut, FnOnce), выбираемых компилятором.
Ещё можно просто ссылки на функции использовать. Но это редко нужно.
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
Lain-dono
Ещё можно просто ссылки на функции использовать. Но это редко нужно.
Ну тут же речь идёт именно о замыканиях.
источник

d

disba1ancer in pro.graphon (and gamedev)
Lain-dono
Ещё можно просто ссылки на функции использовать. Но это редко нужно.
у нас function умеет во всё
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
disba1ancer
у нас function умеет во всё
В отличии от function, Fn-трейты не требуют дин. аллокации сами по себе.
источник

L

Lain-dono in pro.graphon (and gamedev)
disba1ancer
у нас function умеет во всё
Так Fn-подобные интерфейсы могут и обычные функции жевать. И даже методы можно передавать во многих случаях.
источник

d

disba1ancer in pro.graphon (and gamedev)
Mikola Summer Duck
Ну тут же речь идёт именно о замыканиях.
а у вас бывают штуки как плюсовые классы с перегруженным оператором вызова?
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
disba1ancer
а у вас бывают штуки как плюсовые классы с перегруженным оператором вызова?
Собственно Fn/FnMut/FnOnce и позволяют использовать оператор вызова.
источник

d

disba1ancer in pro.graphon (and gamedev)
Mikola Summer Duck
Собственно Fn/FnMut/FnOnce и позволяют использовать оператор вызова.
а в расте есть аналоги таких классов?
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
При этом FnOnce мувает содержимое замыкания, FnMut позволяет его мутировать, Fn только константно доступаться.
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
disba1ancer
а в расте есть аналоги таких классов?
Fn'ы в расте и есть собственно. Может ты имел ввиду наоборот?
источник

L

Lain-dono in pro.graphon (and gamedev)
Lain-dono
Так Fn-подобные интерфейсы могут и обычные функции жевать. И даже методы можно передавать во многих случаях.
Правда иногда это может выглядеть немного странно. Тут fold принимает что-то похожее на функцию/замыкание, которое выглядит как fn(a: T, b: T) -> T
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
На плюсах теоретически можно сделать то же самое, но базовый класс придётся подбирать самому.
источник