多重限定

使用多重限定(multiple bounds)可以用 + 连接。和平常一样,不同的类型使用 , 隔开。

  1. use std::fmt::{Debug, Display};
  2. fn compare_prints<T: Debug + Display>(t: &T) {
  3. println!("Debug: `{:?}`", t);
  4. println!("Display: `{}`", t);
  5. }
  6. fn compare_types<T: Debug, U: Debug>(t: &T, u: &U) {
  7. println!("t: `{:?}", t);
  8. println!("u: `{:?}", u);
  9. }
  10. fn main() {
  11. let string = "words";
  12. let array = [1, 2, 3];
  13. let vec = vec![1, 2, 3];
  14. compare_prints(&string);
  15. //compare_prints(&array);
  16. // 试一试 ^ 将此行注释去掉。
  17. compare_types(&array, &vec);
  18. }

参见:

std::fmttrait