Відповіді:
Всі літеральні рядки можуть бути розбиті на кілька рядків; наприклад:
let string = "line one
line two";
являє собою дворядковий рядок, такий самий, як "line one\nline two"
(звичайно, можна також використовувати \n
новий рядок прямо). Якщо ви хочете просто перервати рядок по декількох рядках з причин форматування, ви можете уникнути нового рядка та провідних пробілів за допомогою символу a \
; наприклад:
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##"#
"###;
Відповідь Хуона правильна, але якщо відступ турбує вас, розгляньте можливість використання Indoc, який є процедурним макросом для відступів багаторядкових рядків. Він розшифровується як "відступний документ". Він надає макрос, який називається indoc!()
багаторядковим рядковим літералом і не відступає його, так що крайній лівий символ, який не знаходиться в пробілі, знаходиться в першому стовпці.
let s = indoc! {"
line one
line two
"};
Результат - "line one\nline two\n"
.
Пробіл зберігається відносно крайнього лівого символу непробілу в документі, тому наступний рядок має два відступних 3 пробіли відносно першого рядка:
let s = indoc! {"
line one
line two
"};
Результат - "line one\n line two\n"
.
У випадку, якщо ви хочете відкласти багаторядковий текст у своєму коді:
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
\n
втечею нового рядка [...], ви можете уникнути нового рядка та провідних пробілів за допомогою а{backslash}
. (дуже важко ввести коментар у