< 返回版块

orangeant 发表于 2021-08-29 14:12

Tags:trait,generics

请问&str, &&str, &&&str 并没有实现Display 的trait, 为什么这个函数调用没问题?


Ext Link: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=a72a851296b1c8e4859cfd4391b67d4d

评论区

写评论
作者 orangeant 2021-08-29 14:44

多谢! impl trait居然还可以递归定义!

--
👇
munpf: 因为Display trait有该实现

impl<'_, T> Display for &'_ T where T: Display + ?Sized

也就是说如果T实现了Display,那么也会为&T实现Display。

而str实现了Display,所以它的引用、引用的引用……也实现了Display。

munpf 2021-08-29 14:34

因为Display trait有该实现

impl<'_, T> Display for &'_ T where T: Display + ?Sized

也就是说如果T实现了Display,那么也会为&T实现Display。

而str实现了Display,所以它的引用、引用的引用……也实现了Display。

1 共 2 条评论, 1 页