Answers:
所有字符串文字都可以分成几行。例如:
let string = "line one
line two";
是两行字符串,与之相同"line one\nline two"
(当然也可以\n
直接使用换行符转义)。如果出于格式化原因只想在多行中中断一个字符串,则可以使用\
;来换行并以空格开头。例如:
let string = "one line \
written over \
several";
与相同"one line written over several"
。
如果您想在字符串中使用换行符,可以在\
:之前添加换行符:
let string = "multiple\n\
lines\n\
with\n\
indentation";
和...一样 "multiple\nlines\nwith\nindentation";
concat!()
宏来完成给定的选项(doc.rust-lang.org/std/macro.concat.html)
如果您想做更长的时间,可能包含或不包含引号,反斜杠等,请使用原始字符串文字符号:
let shader = r#"
#version 330
in vec4 v_color;
out vec4 color;
void main() {
color = v_color;
};
"#;
如果字符串中包含双引号和哈希符号序列,则可以将任意数量的哈希表示为定界符:
let crazy_raw_string = r###"
My fingers #"
can#"#t stop "#"" hitting
hash##"#
"###;
如果您想缩进代码中的多行文字:
let s = "first line\n\
second line\n\
third line";
println!("Multiline text goes next:\n{}", s);
结果将如下所示:
Multiline text goes next:
first line
second line
third line