в оставшемся 1% то что непокрывается текущим растом, всякие трейты с асинк итераторами и подобная ерундень, которая и с гатами-то работает не всегда
Так а почему dyn не идиоматично? У меня просто большой бэкграунд в Java/Scala, там нормальная тема принимать аргумент или возвращать интерфейс или абстрактный класс, чтоб не привязываться к конкретным реализациям. Разве аналог на расте не будет выглядеть как-то так: fn f(arg: &dyn Trait) ? Понятно что как бы навязывается динамическая диспетчеризация, но так ведь и работает рантаймовый полиморфизм (v-table lookup).
а тебе так нужен рантайм полиморфизм?
fn f<T: Trait>(arg: &T) чаще всего даст тебе даж больше возможностей
поясните нубу плз какая принципиальная разница ?
dyn на втейблах и диспатче в рантайме, дженерики в компайлтайме
спасибо, оказывается ответ был на поверхности :)
потому что жаве 30 лет и многое что она делает впоследствии стало понятно что не ок. Не говоря о том, что это ГЦ языки и там с аллокациями в куче проще. Но даже в условной джаве foo(Collection<? super Cat> animals) имхо лучше чем `foo(Collection<Animal> animal). Динамический диспатч это как блютус 90х - его пихали к месту и не очень) На практике он почти всегда не нужен, в чем собсна и прикол
Обсуждают сегодня