2
假設我具有實現特徵「Foo」的結構「F1」和「F2」。
現在我想寫一個接受Foo並返回Bar的函數。你如何配合生鏽的特質?
trait Foo {
fn get_bar(&self) -> &Bar
}
fn do_match(f: &Foo) -> &Bar {
&match *f {
F1 => { f.get_bar() } // Error: mismatched types: expected `Foo`, found an enum or structure pattern
F2 => { f.get_bar().modify_somehow(3f64) }
}
}
是否有可能匹配執行特徵Foo的結構?
謝謝。似乎沒有辦法做我想做的事情。 – uwap 2014-09-26 03:48:11
你能詳細說說你想做什麼嗎? – 2014-09-26 04:00:34
我有以單位命名的tupel結構。所以米(T),釐米(T)等。他們都實施特質距離。我還有一個名爲Hour的小結,它們分別是(T),第二個(T)等等,實現了特質時間。我想定義劃分距離 /時間返回速度。現在Meter/Second應返回類型MetersPerSecond和Kilometers/Hour類型MetersPerHour等。問題是我有5個距離結構和4個時間結構(數量還是隨着時間增加),所以5 * 4 = 20個可能的組合。 –
uwap
2014-09-26 04:16:37