используется без двоеточий fn_name<t>() ? погуглил, так и не понял
Турбофиш не обязательно ставить если раст может самостоятельно вывести подставляемый в дженерик тип из контекста. Ну а обязательность двоеточия - чтобы можно было корректно спарсить код (без двоеточия код в некоторых случаях может быть воспринят по-другому, например, как тупл из N элементов).
понял, спасибо)
А можно плз пример тупла из n элементов, где парсер некоректо считал бы
Турбощит используется при вызове функции, а то что ты предлагаешь - при объявлении
Так парсер в состоянии различить его от операторов > и <. Нет, у других яп не получилось. Они или эвристиками пытаются отличить, или вдобавок к этому парсинг начинает зависеть от типизации.
https://github.com/rust-lang/rust/blob/master/src/test/ui/parser/bastion-of-the-turbofish.rs
я не понял там что вообще происходит ))) ``` let (the, guardian, stands, resolute) = ("the", "Turbofish", "remains", "undefeated"); let _: (bool, bool) = (the<guardian, stands>(resolute)); ```
Обсуждают сегодня