簡體   English   中英

是否可以編寫一個通用的 rust function 告訴您給定的枚舉變體是否在容器中?

[英]Is it possible to write a generic rust function telling you if a given enum variant is in a container?

換句話說,如果您有:

enum Foo {
   Bar(String),
   Buzz(i32)
}

你能寫一個通用的 function 來檢查向量是否包含特定的變體(其中所需的變體是通用參數)嗎?:

fn f<T>(x: Vec<Foo>) -> bool {
    for i in &x {
        if let T(...) = i {
            return true;
        }
    }
    return false;
}

然后用類似的東西打電話:

assert!(f::<Foo::Buzz>(x));

我認為這可能相當於詢問是否matches! 可以是通用的 function 而不是宏。

不,您不能將枚舉變量用作泛型參數,因為它不是類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM