我有一些带有指定空格的多行字符串。对于其中一些,删除了一些空白:
const WORKING: &str = "\
┌─┬┐
│ ││
╞═╪╡
│ ││
├─┼┤
├─┼┤
│ ││
└─┴┘
";
const NON_WORKING: &str = "\
╷
│
╶─┼╴
│
╶─┼╴
╶─┼╴
│
╵
";
pub fn main() {
println!("{}", WORKING);
println!("{}", NON_WORKING);
}
它在不工作的行的开头移除一些空格。印刷:
╷
│
╶─┼╴
│
╶─┼╴
╶─┼╴
│
╵
我认为它必须处理\
的使用,但是我不知道如何在之后不启动行来解决它
发布于 2021-01-06 12:19:56
我自己也没有尝试过,但我听说板条箱旨在帮助编写包含缩进的多行字符串文字。它平等地从所有行中删除前导空格,而不是\
独立地从每一行中删除前导空格的行为。
使用indoc 使用indoc::indoc;fn main() { let testing = indoc!{“def hello():print('Hello,world!') hello() "};let期望值=”def hello():\n print('Hello,world!‘)\n\n Hello()\n assert_eq!(预期测试);}
发布于 2021-01-06 10:18:27
锈蚀会自动删除指定的空格,因为长字符串通常被分割成这样的多行,而空格只是为了格式化目的。
您可以使用原始字符串禁用此行为。请注意开头和结尾处的额外r
和自定义分隔符#
。
const NON_WORKING: &str = r#"
╷
│
╶─┼╴
│
╶─┼╴
╶─┼╴
│
╵
"#;
发布于 2021-01-07 05:06:09
最后,我使用了简单的str并删除了初始的\n
。
let WORKING: &str ="
──
──
──
──
── ".trim_start_matches("\n")
https://stackoverflow.com/questions/65601049
复制相似问题