История изменений
Исправление intelfx, (текущая версия) :
Т. е. интерфейс в расте называется трейтом, и в заголовке той функции сказано что-то вроде «функция от T, где T — любой тип, удовлетворяющий трейту (интерфейсу) fmt::Display».
При этом раст по возможности делает static dispatch, т. е. раскрывает функцию подобно шаблонной в плюсах. А можно передавать в функцию ссылку на трейт (fn foo(x: &std::fmt::Display)
), тогда будет dynamic dispatch (т. е. виртуальный вызов).
Ну и всё-таки да, в конкретно той функции, что я выше написал, возможен только static dispatch, поэтому действительно — это некий аналог шаблонной функции на плюсах.
Исправление intelfx, :
Т. е. интерфейс в расте называется трейтом, и в заголовке той функции сказано что-то вроде «функция от T, где T — любой тип, удовлетворяющий трейту (интерфейсу) fmt::Display».
При этом раст по возможности делает static dispatch, т. е. раскрывает функцию подобно шаблонной в плюсах. А можно передавать в функцию ссылку на трейт, тогда будет dynamic dispatch (т. е. виртуальный вызов).
Ну и всё-таки да, в конкретно той функции, что я выше написал, возможен только static dispatch, поэтому действительно — это некий аналог шаблонной функции на плюсах.
Исходная версия intelfx, :
Т. е. интерфейс в расте называется трейтом, и в заголовке той функции сказано что-то вроде «функция от T, где T — любой тип, удовлетворяющий трейту (интерфейсу) fmt::Display».
При этом раст по возможности делает static dispatch, т. е. раскрывает функцию подобно шаблонной в плюсах. А можно передавать в функцию ссылку на трейт, тогда будет dynamic dispatch (т. е. виртуальный вызов).