`my_func<T: MyTrait>` 与 `my_func<T> 之间的区别,其中 T: MyTrait`

Difference between `my_func<T: MyTrait>` vs `my_func<T> where T: MyTrait`

有什么区别

my_func<T: MyTrait>(...) {...}

my_func<T>(...) where T: MyTrait {...}

?

一个写有明确的 where 子句,另一个没有。

好的,好的;如果你想挑剔的话,区别是:

  • 不能使用 where 子句引入泛型参数。
  • 除了泛型参数列表中的泛型参数,您不能约束任何其他

但就将约束从通用参数列表移至 where 子句时发生的变化而言,它们是相同的。