5
foo
は、形質を実装するタイプのインスタンスをとるA
です。私はいつも、静的ディスパッチを持つためにジェネリックを使用することを好む:動的および静的なディスパッチを持つ特性作成者のための機能を実装する
trait A {}
fn foo<T: A>(t: T) {}
しかし、このアプローチは、いくつかの硬直を紹介し、私はここのような形質オブジェクトを渡すことはできません。
trait A {}
fn foo(t: &A) {}
事は、ときどき私はそのタイプを知っていることがあります。 traitオブジェクトの動的ディスパッチとコンパイル時の既知の型の静的ディスパッチの両方を実装する方法はありますか?
あなたの 'fn foo'を完全に理解しているかどうかはわかりません。 'Sized'には常に暗黙的な境界がありますか? – torkleyy
@torkleyy関数の引数は、yesです。どちらの場合でも、私たちが提供しているものは実際には常にサイズが決められているので、これは大丈夫です。 2番目の関数は、Tがそうでなくても、サイズの '&T'をとります。 –