私は「借りチェッカーと戦う」という穴に落ちたようです。私は次のエラーを取得する入力パラメータとしてのタプルへの参照の変更
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私が手元に持っているデータは、デフォルトでは不変です –