Я, кажется, попал в дыру, известную как «борьба с заемщиком чека» на этом. У меня есть следующие функции:Модифицированная ссылка на кортеж в качестве входного параметра
fn draw_pair(decks: &(&mut Deck, &mut Deck)) -> (Card, Card) {
let (&mut p1, &mut p2) = decks;
(p1.draw_card(), p2.draw_card())
}
Я получаю следующее сообщение об ошибке:
expected type: &(&mut Deck, &mut Deck)
found type: (_, _)
Идея заключается в том, чтобы взять Мутабельную Ссылку на содержание кортежа. Я не вижу причин мутировать сам кортеж. Эта функция будет работать в цикле.
Вместо этого я пытался написать let &(&mut p1, &mut p2) = decks;
, но он говорит мне, что он не может выйти из заимствованного содержимого.
Вот функция, которая вызывает draw_pair
:
fn play(decks: (Deck, Deck)) {
loop {
let cards = draw_pair(&decks);
// actual game not yet implemented
}
}
Это тоже дает мне ошибку, заявив, что ожидает &(&mut Deck, &mut Deck)
, но становится &(Deck, Deck)
.
Вы передаете & (Deck, Deck) функцию draw_pair, а не ожидаемую & (& mut Deck, & mut Deck) , – SplittyDev
@SplittyDev Я знаю об этом. –
@SplittyDev данные, которые у меня под рукой, неизменяемы по умолчанию –