选择换行在多行字符串文字中的位置

and*_*man 7 rust

如果我创建以下多行字符串文字:

let lit = "A -> B
           C -> D
           E -> F";
Run Code Online (Sandbox Code Playgroud)

它打印出来像这样:

A -> B
          C -> D
          E -> F
Run Code Online (Sandbox Code Playgroud)

没有惊喜.但是,如果我试试这个:

let lit = "A -> B\
           C -> D\
           E -> F";
Run Code Online (Sandbox Code Playgroud)

我明白了:

A -> BC -> DE -> F
Run Code Online (Sandbox Code Playgroud)

我想要得到的是:

A -> B
C -> D
E -> F
Run Code Online (Sandbox Code Playgroud)

但这是我提出的最好的事情:

let lit = "A -> B\n\
           C -> D\n\
           E -> F";
Run Code Online (Sandbox Code Playgroud)

或许这个:

let lit = vec!["A -> B", "C -> D", "E -> F"].connect("\n");
Run Code Online (Sandbox Code Playgroud)

这两个人都觉得有点笨重,虽然不是很糟糕.只是想知道是否有更清洁的方式?

小智 0

我看到其他三种可能的解决方案:

1)去掉空格:

let lit = "A -> B
C -> D
E -> F";
Run Code Online (Sandbox Code Playgroud)

这样,您的代码中就会失去整洁的显示效果。你可以这样取回:

2)去掉空格,将所有内容向下移动一行,并逃避回车。

let lit = "\
A -> B
C -> D
E -> F";
Run Code Online (Sandbox Code Playgroud)

不过,我会在评论中解释“\”的作用,因为否则它并不明显。

3)结合这两个解决方案:

let lit = 
"A -> B
C -> D
E -> F";
Run Code Online (Sandbox Code Playgroud)

您可以在Ideone上进行测试。