gpt4 book ai didi

rust - 将字符串转换为 TokenStream

转载 作者:行者123 更新时间:2023-11-29 08:35:52 27 4
gpt4 key购买 nike

给定一个字符串 (str),如何在 Rust 中将其转换为 TokenStream

我试过使用 quote! 宏。

let str = "4";
let tokens = quote! { let num = #str; }; // #str is a str not i32

这里的目标是为一些未知的代码字符串生成标记。

let thing = "4";
let tokens = quote! { let thing = #thing }; // i32

let thing = ""4"";
let tokens = quote! { let thing = #thing }; // str

最佳答案

how can one convert [a string] into a TokenStream

Rust 有一个共同的特点,即在转换可能失败时将字符串转换为值:FromStr .这通常通过 parse 访问&str 上的方法。

proc_macro2::TokenStream

use proc_macro2; // 0.4.24

fn example(s: &str) {
let stream: proc_macro2::TokenStream = s.parse().unwrap();
}

proc_macro::TokenStream

extern crate proc_macro;

fn example(s: &str) {
let stream: proc_macro::TokenStream = s.parse().unwrap();
}

您应该知道,此代码不能在调用实际过程宏之外运行。

关于rust - 将字符串转换为 TokenStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54165117/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com