我在 Rust 中有这个函数:
fn printboard(board: Vec<u32>) {
println!("| |{:>2$} {:>2$} {:>2$} {:>2$} {:>2$} {:>2$}| |",
board[1], board[2], board[3], board[4], board[5], board[6]);
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,代码在 处抛出错误board[3],显示“预期的 usize,发现了 u32”。对于任何其他board[x]表达式都不会发生这种情况。知道为什么会发生这种情况吗?
这是完整的错误:
fn printboard(board: Vec<u32>) {
println!("| |{:>2$} {:>2$} {:>2$} {:>2$} {:>2$} {:>2$}| |",
board[1], board[2], board[3], board[4], board[5], board[6]);
}
Run Code Online (Sandbox Code Playgroud)
如果每个板元素应以 2 的宽度打印,则应省略$s:
fn printboard(board: Vec<u32>) {
println!("| |{:>2} {:>2} {:>2} {:>2} {:>2} {:>2}| |",
board[1], board[2], board[3], board[4], board[5], board[6]);
}
Run Code Online (Sandbox Code Playgroud)
请参阅文档中的宽度std::fmt。
格式说明符{:>2}意味着以宽度 2 右对齐,而{:>2$}意味着以第二个参数指定的宽度右对齐(board[3]从 0 索引开始)。此宽度参数必须为 a usize,这就是您收到类型错误的原因。
| 归档时间: |
|
| 查看次数: |
212 次 |
| 最近记录: |