我很難搞清楚Rust中的字符串語法是如何工作的。具體來說,我試圖弄清楚如何製作多行字符串。多行字符串文字的語法是什麼?
回答
所有字符串文字可以分成幾行,
let string = "line one
line two";
是一個兩行字符串,相同"line one\nline two"
(當然可以直接使用\n
換行符逃逸太)。如果您希望只是爲了格式化原因而將字符串分成多行,則可以使用\
(例如1)來避開換行符和前導空格。
let string = "one line \
written over \
several";
與"one line written over several"
相同。如果你想要做的事多一點的時間
謝謝!我正在尋找「第一線/第二線」案例。 – Dumbapples
,這可能會或可能不包括引號,反斜槓,等等,使用raw string literal notation:
let shader = r#"
#version 330
in vec4 v_color;
out vec4 color;
void main() {
color = v_color;
};
"#;
如果有內雙引號和hash符號序列你的字符串,可以表示哈希任意數量的作爲分隔符:
let crazy_raw_string = r###"
My fingers #"
can#"#t stop "#"" hitting
hash##"#
"###;
但是......如果你不想在結果中使用換行符,並且原始字符串沒有幫助,那麼只需要轉義換行符。 – poolie
如果您不關心換行符(例如,當您嵌入的代碼是像着色器和內核這樣的新行不可知的代碼),或者就像您一樣,原始字符串只會阻止您在每行的末尾添加'\'暗示,換行符實際上是必要的。它只是讓您更容易嵌入您可能想要編輯的代碼,而不必在每行末尾加上'\'。就這樣。 – c0g
如果你想(或不介意)結果字符串中的換行符,普通的雙引號字符串將會很好地完成,如其他例子所示。如果你想避免換行,原始字符串不好。如果文本包含引號,反斜槓等,它們確實只能提供幫助 - 這可能會發生在嵌入式源代碼中。 – poolie
Huon's answer是正確的,但如果壓痕困擾你,可以考慮使用Indoc這是一個程序宏縮進畝lti線字符串。它代表「縮進文檔」。它提供了一個名爲indoc!()
的宏,該宏使用多行字符串文字並取消縮進,以使最左邊的非空格字符位於第一列。
let s = indoc!("
line one
line two");
結果是"line one\nline two"
。
如果您願意,可以使用幾種等效的方法來格式化相同的東西,所以請選擇您喜歡的一種。以下兩個結果與上述相同。內容可以隨意縮進 - 它不必是特定數量的空格。
let s = indoc!(
"line one
line two");
let s = indoc!("line one
line two");
空白相對於所述文檔中最左邊的非空格字符被保留,所以下面有行相對兩個凹形3個空格行一個:
let s = indoc!("
line one
line two");
結果是"line one\n line two"
。
- 1. 什麼是循環多行字符串中行的好方法?
- 2. 語法[/]在C#字符串中的含義是什麼
- 3. 這些字符串的正確檢查語法是什麼?
- 4. C#:空字符串上固定語句的行爲是什麼?
- 5. 字符文字中的字符太多錯誤是什麼
- 6. 比較一個字符串和多個其他字符串的更好的語法是什麼?
- 7. 什麼是空字符串?
- 8. 什麼是unicode字符串?
- 9. 什麼是Uri字符串?
- 10. 什麼是C#字符串
- 11. Python中的字符串模板:什麼是合法字符?
- 12. 這是什麼字符串語法意味着在javascripts?
- 13. Console.Write語法:是什麼格式字符串 「{0,-25}」 指
- 14. 什麼是替換字符串中多個字符的有效方法?
- 15. 字符串文字之前符號「@」的含義是什麼?
- 16. launchd helpers的plist文件中的SMPrivilegedExecutables字符串的語法是什麼?
- 17. vb.net中的多行字符串文字?
- 18. Matlab中的多行字符串文字?
- 19. 分解多行的字符串文字
- 20. 的Python:什麼是傳遞一個多字的字符串來
- 21. 用連字符引用字段的正確語法是什麼?
- 22. 在C#中,跨多個源代碼行傳播單行字符串文字的最佳方法是什麼?
- 23. 字符串... <varname>什麼是字符串...意思是
- 24. 什麼是進行字符串比較最有效的方法?
- 25. 什麼是當前現代術語「多字節字符集」
- 26. JQuery.each將字符串文字轉換爲字符串。爲什麼?
- 27. 什麼是多字節字符集?
- 28. 在C#中的區別是什麼:字符串VS字符串
- 29. 解析多個字組合的字符串的最佳方法是什麼?
- 30. 什麼是日語的空白字符?
可能的重複[如何在Rust中編寫多行字符串?](http://stackoverflow.com/questions/15265198/how-do-i-write-a-multi-line-string-in -rust) –