如何在不使用引号的情况下打印字符串?

5

我想显示玩家的名字和得分,但是我无法想出如何在不带引号的情况下打印名字:

#[derive(Debug, Clone)]
struct Player {
    name: String,
    score: i32,
    turn_count: i32,
}

fn main() {
    let players: Vec<Player> = ...;
    for player in players {
        println!("{:X?} {:?}", player.name, player.score);
    }
}

"STUART" 23
"KEVIN" 0
"BOB" 5

pvecp_num是什么? - Abdul Niyas P M
2
使用 {} 替代 {:?} - Jmb
1个回答

7

你正在使用?进行格式化,它使用的是std::fmt::Debug特性而不是Display。调试格式化程序会在字符串中打印引号,而普通格式化程序则不会。

let cat = "Cat";
println!("{:?}", cat);
println!("{}", cat);

"Cat"
Cat

查看std::fmt文档以及格式化打印教程以获取更多细节信息。


非常感谢,我不确定为什么我认为我必须使用debug fmt打印。 - swimming

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接