Почему стандартная библиотека осуществляет преобразования из каждого типа в себя? - PullRequest
4 голосов
/ 25 сентября 2019

На странице 298 из Programming Rust вы можете найти следующую инструкцию

Стандартная библиотека автоматически реализует тривиальное преобразование из каждого типа в себя: каждый тип T реализуетFrom<T> и Into<T>

Однако на самом деле не сказано, почему это было бы полезно или почему стандартная библиотека автоматически это сделает?В чем причина?

1 Ответ

13 голосов
/ 25 сентября 2019

Это может быть удобно при написании функций / типов с общими аргументами.Например, если я напишу функцию:

fn do_something_with_string<S: Into<String>>(s: S) {}

Эта функция будет одинаково работать для String и всего, что можно превратить в одну.

...