为什么标准库要实现从每种类型到自身的转换?

Eva*_*oll 3 identity type-conversion traits rust

Programming Rust的第298页上,您可以找到以下语句

标准库会自动实现从每种类型到自身的琐碎转换:每种类型都T实现From<T>Into<T>

但是,实际上并没有说明为什么这样做会有用,或者为什么标准库会自动这样做呢?这是什么原因?

Dan*_*all 13

在编写带有泛型参数的函数/类型时可能会很方便。例如,如果我编写一个函数:

fn do_something_with_string<S: Into<String>>(s: S) {}
Run Code Online (Sandbox Code Playgroud)

该功能将同等起作用,String并且任何可以转化为一个的功能。