Rust 为什么来自<;T>;对于U意味着进入<;U>;对于生锈的T?

Rust 为什么来自<;T>;对于U意味着进入<;U>;对于生锈的T?,rust,Rust,这就是我如何将实现为特征,以将i32转换为一组平方数: impl Into<SquaredNumber> for i32 { fn into(number: i32) -> SquaredNumber { SquaredNumber(i32::pow(2, number)) } } impl-in for i32{ fn到(数字:i32)->平方数{ 平方数(i32::pow(2,数字)) } } 根据: From for U意味着to fo

这就是我如何将
实现为
特征,以将
i32
转换为一组平方数:

impl Into<SquaredNumber> for i32 {
    fn into(number: i32) -> SquaredNumber {
        SquaredNumber(i32::pow(2, number))
    }
}
impl-in for i32{
fn到(数字:i32)->平方数{
平方数(i32::pow(2,数字))
}
}
根据:

From for U意味着to for T
怎么可能仅仅因为我将
实现为
,就实现了
From
?给定一个
平方数(16)
,它是否会变成
4:i32
,并不明显,它可能是
-4:i32


这是如何工作的?

如果您弄错了,您应该从自动执行开始执行,而不是相反。多亏了禁用的实现
impl From for SquaredNumber
将意味着
impl Into for i32
,因此没有生成
SquaredNumber
->
i32
From<T> for U implies Into<U> for T