这两种写法有啥区别呢? trait Trait {}// generic type parameterfn foo<T: Trait>(arg: T) {}// impl Trait in argument positionfn foo(arg: impl Trait) {} 几乎一样,impl trait是泛型的语法糖。impl 是匿名泛型。 注意:impl trait无法通过 foo::(1)的方式显式指定泛型