温馨提示:本文翻译自stackoverflow.com,查看原文请点击:rust - How to concatenate token right after a variable within `quote!` macro?
concat rust token rust-macros

rust - 如何在“ quote!”宏中的变量后紧接令牌?

发布于 2020-04-19 11:49:19
use quote::quote;

fn main() {
    let name = "foo";
    let res = quote!(#name bar);
    println!("{:?}", res.to_string());
}

上面的代码打印出来"\"foo\" bar"请尝试运行它在这里生锈游乐场。

如何调整它以使单个标识符来自可变部分和常数后缀?

我想quote!在派生宏中使用返回的值。如何摆脱双引号字符?

查看更多

提问者
YLyu
被浏览
125
Psidom 2020-01-23 09:28

因为你只需要报价栏,怎么样结合的使用quote!format!

use quote::quote;

fn main() {
    let name = "foo";
    let res = format!("{} {}", name, quote!(bar));
    println!("{:?}", res.to_string());
}

操场

如果结果中需要额外的报价:

use quote::quote;

fn main() {
    let name = "foo";
    let res = format!("\"{}{}\"", name, quote!(bar));
    println!("{:?}", res.to_string());
}

操场