这是我目前的进展:
#[derive(Copy, Clone, Debug)]
enum Suits {
Hearts,
Spades,
Clubs,
Diamonds,
}
#[derive(Copy, Clone, Debug)]
struct Card {
card_num: u8,
card_suit: Suits,
}
fn generate_deck() {
let deck: [Option<Card>; 52] = [None; 52];
for mut i in deck.iter() {
i = &Some(Card {
card_num: 1,
card_suit: Suits::Hearts,
});
}
for i in deck.iter() {
println!("{:?}", i);
}
}
fn main() {
generate_deck();
}
它仅仅打印出None
。我的借用有问题吗?我做错了什么?
iter
=>iter_mut
- https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=9b0c99b7fc83bfdef5af4eca1dd4b22a - Stargateuri
赋值从未被读取”,针对这行代码:i = &Some(Card {
。它没有被任何地方读取,因此变异没有任何效果。你正在为一个变量编写一个新引用,并且没有给现有引用一个新值。 - Peter Hall