5
我想要一个功能foo
,该功能采用实现特征A
的类型的实例。我总是喜欢以使用泛型具有静态调度:使用动态和静态调度来实现特征实现者的功能
trait A {}
fn foo<T: A>(t: T) {}
然而,这种方法引入了一些灵活性,我无法通过一个特质对象喜欢这里:
trait A {}
fn foo(t: &A) {}
的事情是,有时我知道类型,有时不知道。有没有一种方法可以为编译时间已知类型同时拥有对特征对象的动态分派和静态分派,同时又不会执行两次?
我不确定我是否完全理解你的'fn foo'。 'Sized'上总是没有隐含的限制吗? – torkleyy
@torkleyy在函数参数上,是的。这是可以的,因为我们提供的是无论如何确实总是大小。第二个函数使用'&T',即使T不是,也可以调整大小。 –