相关疑难解决方法(0)

函数如何将值附加到向量并返回该值?

我正在尝试编写一个rotate_card接受矢量作为输入的函数,将矢量的前元素旋转到后面,然后返回一个包含旋转元素和旋转产生的矢量的对.

#[derive(Debug)]
enum Card {
    Ace,
    King,
    Queen,
    Jack,
}

type Deck = Vec<Card>;

fn rotate_card(deck: &mut Deck) -> (Card, &mut Deck) {
    let top_card = deck.remove(0);
    deck.push(top_card);
    (top_card, deck)
} // end rotate_card

fn main() {
    let mut my_deck: Deck = vec![Card::Ace, Card::King, Card::Queen, Card::Jack];
    let z: (Card, &mut Deck) = rotate_card(&mut my_deck);
    println!("The value of z is: {:?}.", z);
} // end main
Run Code Online (Sandbox Code Playgroud)
error[E0382]: use of moved value: `top_card`
  --> src/main.rs:14:6
   |
13 |     deck.push(top_card);
   | …
Run Code Online (Sandbox Code Playgroud)

move vector rust

1
推荐指数
1
解决办法
132
查看次数

标签 统计

move ×1

rust ×1

vector ×1