我使用 rust 的第一个项目是一个类似扑克牌的小型纸牌游戏,该游戏有五列,玩家在其中放置五张牌。是一个从外部APICard
获取其值和套件的结构。另一方面,存储我之前谈到的列。 现在,我想通过运行测试来测试某一列不会获得超过五张牌。Board
Board
卡片:
pub struct Card {
value: String,
suit: String,
}
impl Card {
pub fn new(value: String, suit: String) -> Card {
Card { value, suit }
}
}
木板:
use crate::card::Card;
struct Board {
columns: [Vec<Card>;5]
}
impl Board {
fn add_card(self){# adds a card}
测试:
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn no_card_full_column() {
let card_one = Card::new(String::from("4"), String::from("Spades"));
let card_two = Card::new(String::from("3"), String::from("Spades"));
let card_three = Card::new(String::from("2"), String::from("Spades"));
let card_four = Card::new(String::from("5"), String::from("Spades"));
let card_five = Card::new(String::from("6"), String::from("Spades"));
let mut board = Board {
columns: [vec![], vec![], vec![], vec![], vec![]],
};
board.columns[0].push(card_one);
board.columns[0].push(card_two);
board.columns[0].push(card_three);
board.columns[0].push(card_four);
board.columns[0].push(card_five);
board.add_card();
assert_eq!(&board.columns[0].len(), 5);
}
}
rust-analyzer
抱怨can't compare &usize with integer
(顺便说一下我知道 usize 借用)所以我有几个问题:
usize
结构向量是否以不同于的方式分配内存integer
?- 我查阅了文档,但没有找到任何有用的信息,所以我尝试将其转换
usize
为整数,我知道这并不优雅,但我想通过测试并在以后改进它(绿色、红色、重构)。我不认为转换长度是答案。但我还应该继续尝试吗?