java,c#的泛型,只能对泛型类型T进行约束,rust的约束比较强大,可以反过来约束,比如

    1. pub fn takes_into_string<T>(t: T)
    2. where String: From<T>
    3. {
    4. let str = String::from(t);
    5. println!("str is {}", str);
    6. }

    这里约束了 String必须实现 From,当然也可以写成 where T: Into<String>