на хабре, но мало понял. хочется больше примеров и больше материала
Можешь задать конкретный вопрос, что именно не понятно
1. Почему она вообще существует? Я так понял, что - она существует когда нельзя явно на этапе компиляции определить какой тип реализует передаваемый типаж, поправьте если не так. То есть в функцию можно передавать любой тип который реализует типаж (ссылку на тип) 2. Какой бэкграунд стоит за возвращением замыкания dyn Fn ? почему здесь вообще применяется dyn?
1. Генерики же. Статическая просто дублирует участки кода, подставляя туда тип. Динамическая хитрее, там хранится объект + втейбл (это таблица указателей на методы для данного объекта). 2. Динамическая же. А вообще dyn Trait - trait object, то есть грубо говоря объект трейта (что, конечно же, не так - там конкретный тип, информация которого скрывается - полиморфизм)
аааа. Понял, нужна была информация о том что именно представляет из себя динамическая. хорошо, но я все равно не понимаю - почему я обязан писать указатель на dyn Fn при возвращении замыкания а не просто указатель на Fn?
Обсуждают сегодня