由于转义,我认为给出以下代码:
fn main() {
println!("{}}");
println!("{{}");
}
Run Code Online (Sandbox Code Playgroud)
我会收到类似于unmatched '}' in format string第一个println!和unmatched '{' in format string第二个的错误消息println!。然而,我实际上在两种使用中都遇到了相同的错误println!:
error: invalid format string: unmatched `}` found
--> src/main.rs:2:17
|
2 | println!("{}}");
| ^ unmatched `}` in format string
|
= note: if you intended to print `}`, you can escape it using `}}`
error: invalid format string: unmatched `}` found
--> src/main.rs:3:17
|
3 | println!("{{}");
| ^ unmatched `}` in format string
|
= note: if you intended to print `}`, you can escape it using `}}`
Run Code Online (Sandbox Code Playgroud)
这意味着第一个println!必须采用格式参数,而第二个则不需要。为什么会有这种行为?
这是因为这是一个格式化字符串,而不仅仅是任何字符串,因此 和{都很}重要。
请注意此处使用的转义符号:{{等于{,因此}它本身就是一个关闭而没有相应的打开。
在第一种情况下,您有open、close、close,因此第二个 close 是无与伦比的。
在第二种情况下,您有Literal{、close,并且第一个 close 是不匹配的。
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |