【发布时间】:2019-07-10 19:25:41
【问题描述】:
我不知道为什么,但我的方法不起作用,有没有办法将 self 与其父结构进行比较?我为上下文添加了数据结构。
#[derive(PartialEq, Copy, Clone, Debug)]
enum Suits {
Hearts,
Spades,
Clubs,
Diamonds,
}
#[derive(PartialEq, Copy, Clone, Debug)]
struct Card {
card_num: u8,
card_suit: Suits,
}
fn match_card(&self, deck: &[Option<Card>]) -> bool {
for i in deck.iter() {
match i.unwrap() {
self => {
println!("\nFound card in deck!\nCard found is {:#?}\n", i.unwrap());
return true;
}
_ => continue,
}
}
false
}
我明白了:
`self` value is a keyword and may not be bound to variables or shadowed
【问题讨论】:
-
很难回答您的问题,因为它不包含minimal reproducible example。我们无法分辨代码中存在哪些 crate(及其版本)、类型、特征、字段等。如果您尝试在Rust Playground 上重现您的错误,如果可能的话,这将使我们更容易为您提供帮助,否则在全新的 Cargo 项目中,然后在edit 您的问题中包含附加信息。您可以使用Rust-specific MRE tips 来减少您在此处发布的原始代码。谢谢!
标签: rust