在 Rust 中,“r#”是什么?

3
这个页面在 Rocket 指南中 有如下代码片段:
use rocket::form::Form;

#[derive(FromForm)]
struct Task<'r> {
    complete: bool,
    r#type: &'r str,
}

#[post("/todo", data = "<task>")]
fn new(task: Form<Task<'_>>) { /* .. */ }
< p > 在 < code > struct Task 中的 < code > r# 是什么?

我知道在Rust中什么是原始字符串字面值,它以< code > r 开始,并且紧随任意数量的< code > # 。然而,在上面的代码片段中,似乎没有闭合的< code > # 。

1个回答

4
它允许您避免使用保留字type并将其用作结构体的字段。有关“原始标识符”的更多信息,请在此处查看。

2
谢谢。但是有一个小修正:你的链接指向原始字符串字面量。这个概念被称为“原始标识符”。我认为更好的链接可能在这里 https://doc.rust-lang.org/rust-by-example/compatibility/raw_identifiers.html - DatoClement
Rust参考文档:https://doc.rust-lang.org/reference/identifiers.html#raw-identifiers - kmdreko

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