与函数类似,实现(impl)在涉及泛型时也需要谨慎处理。
impl
#![allow(unused)] fn main() { struct S; // 具体类型 `S` struct GenericVal<T>(T); // 泛型类型 `GenericVal` // GenericVal 的实现,这里我们显式指定类型参数: impl GenericVal<f32> {} // 指定 `f32` impl GenericVal<S> {} // 指定上面定义的 `S` // `<T>` 必须放在类型前面以保持泛型 impl<T> GenericVal<T> {} }
返回引用的函数、impl 和结构体