<分区>
取下面的代码
fn do_stuff<T: ?Sized + io::Write + io::Read>(mut serial: Box<T>) {
// stuff
}
例如,它可以使用一个串行设备,或者一个用于测试目的的文件。这行得通,但编写该类型绑定(bind)的情况非常少。
如何为可以在其他函数中重用的边界命名?使用(根据 Is there any way to create a type alias for multiple traits? )
trait IoDev : io::Write + io::Read {}
impl<T: io::Write + io::Read> IoDev for T {}
部分解决了问题,因为不再需要重复 Write+Read
,但我仍然需要在每个函数上重复 ?Sized
。有没有办法避免重复这种情况?