2
鏽色程序,我其中我想打印一個數字,或數字的管分隔矢量,因此該簡單的包裝枚舉的使用情況:匹配參數化類型中鏽病
pub enum OneOrMore<T> {
One(T),
More(Vec<T>)
}
其工作正常。但後來我想格式邏輯搬進OneOrMore
類型,所以我嘗試:
impl<T: Show> Show for OneOrMore<T> {
fn fmt(&self, f: &mut Formatter) -> Result {
match self {
One(x) => x.fmt(f),
More(xs) => /* vec_join(xs, "|") or whatever */,
}
}
}
由於impl
是參數,它期待One<T>
但我的代碼描述One<_>
。問題是我無法弄清楚在哪裏把類型參數放在匹配武器裏面。 syntax guide未給出參數化類型匹配的示例,fmt
本身不接受類型參數,並且所有盲目猜測(One(x: T)
,One<T>(x)
等)都不是有效的Rust。任何想法,我應該指出的比賽武器的類型?
謝謝,我這次完全誤解了編譯器錯誤。 – bees 2014-12-04 04:37:29
順便說一下,標準的鏽風格是'match * foo {Bar =>()}',而不是'match foo {&Bar =>()}',儘管如果匹配的表達式是一個元組,如'match(self,other){(&Foo,&Foo)=>()}'。 – 2014-12-04 06:55:20