首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么多行字符串在开头跳过预期的空格?

为什么多行字符串在开头跳过预期的空格?
EN

Stack Overflow用户
提问于 2021-01-06 10:04:22
回答 3查看 1.6K关注 0票数 1

我有一些带有指定空格的多行字符串。对于其中一些,删除了一些空白:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const WORKING: &str = "\
┌─┬┐
│ ││
╞═╪╡
│ ││
├─┼┤
├─┼┤
│ ││
└─┴┘
";

const NON_WORKING: &str = "\
  ╷ 
  │ 
╶─┼╴
  │ 
╶─┼╴
╶─┼╴
  │ 
  ╵ 
";

pub fn main() {
    println!("{}", WORKING);
    println!("{}", NON_WORKING);
}

它在不工作的行的开头移除一些空格。印刷:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
╷ 
  │ 
╶─┼╴
  │ 
╶─┼╴
╶─┼╴
  │ 
  ╵ 

我认为它必须处理\的使用,但是我不知道如何在之后不启动行来解决它

游乐场

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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!(预期测试);}

票数 3
EN

Stack Overflow用户

发布于 2021-01-06 10:18:27

锈蚀会自动删除指定的空格,因为长字符串通常被分割成这样的多行,而空格只是为了格式化目的。

您可以使用原始字符串禁用此行为。请注意开头和结尾处的额外r和自定义分隔符#

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const NON_WORKING: &str = r#"
  ╷ 
  │ 
╶─┼╴
  │ 
╶─┼╴
╶─┼╴
  │ 
  ╵ 
"#;
票数 0
EN

Stack Overflow用户

发布于 2021-01-07 05:06:09

最后,我使用了简单的str并删除了初始的\n

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let WORKING: &str ="
 ── 
    
 ── 
    
 ── 
 ── 
    
 ── ".trim_start_matches("\n")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65601049

复制
相关文章

相似问题

在多行开头添加空格

443

sscanf跳过开头的空格

10

匹配以空格开头的多行

12

删除多行字符串变量中每一行开头的空格。

55

字符串开头的跳过模式

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文