私は同じタイプの2つの引数を取る関数f
と、異なる型の2つの引数をとる関数g
を持っていますが、どちらの型も同じ値を格納しなければなりません。g
はf
に引数はf
になります。どのようにして、関連する2つのタイプの形質の等価性を強制できますか?
fn f<T>(a: T, b: T) {}
trait A {
type A;
fn getter(&self) -> Self::A;
}
fn g<T: A, U: A>(a: T, b: U) {
f(a.getter(), b.getter())
}
私はそれを動作させるためにg
の定義に追加する必要が何をすべきか:私は現在、このような何かを実装しますか?
も参照してください:http://stackoverflow.com/q/29345708/155423。 http://stackoverflow.com/q/27893501/155423。 – Shepmaster