在Rust中是否有类似C#原样字符串的语法?

5

我正在寻找Rust中的逐字字符串(类似于C#中使用@"This is a string and here ""I am between quotes without making a fuss""")。

是否有类似的功能?

2个回答

8

这个 竟然很难找到。

在 Rust 中,原始字符串字面量用 r"" 包围,并在需要使用引号时添加 #。 对于您的示例,
r#"This is a string and here "I am between quotes without making a fuss""#
应该可以工作。(双引号将在字符串中产生双倍引号。)

如果您需要带有 # 符号的内容,可以这样做
r###"This string can have ## in as many places as I like ##, but never three in a row ##"###

但是,在 Rust 的原始字符串中,转义是不允许的。例如,您不能使用 \n。但是,您可以包含任何您想要的 UTF-8 字符。


太糟糕了,我本来想在某个地方添加一些新行的。 但还是遵守 Rust 的规则吧。 感谢您的回答! - Natalie Perret
要明确一点:它看起来会非常奇怪,但你可以在原始字面量中包含换行符。如果你阅读我提供的链接,会有更多的解释。 - Zarenor

3
我猜你正在寻找原始字符串字面量
 let raw_string_literal = r#" line1 \n still line 1"#;
 println!("{}", raw_string_literal);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接