rust 在引用变量插值中有没有访问变量字段的方法?

ioekq8ef  于 2023-02-23  发布在  其他
关注(0)|答案(1)|浏览(146)

我有一个包含5个元素的元组,我想将它们中的每一个都包含在quote!{...}块中。
我尝试了几种方法直接访问quote!{}块中的字段,但都没有成功:

let tuple = (1, true, -3, 4., "five");
quote! { #tuple.0 };    // error
quote! { #{tuple.0} };  // error
quote! { tuple.#0 };    // error

对我来说唯一有效的方法是将每个元素分配给不同的变量,然后分别插入它们:

let tuple = (1, true, -3, 4., "five");
let tuple_0 = tuple.0;
let tuple_1 = tuple.1;
let tuple_2 = tuple.2;
let tuple_3 = tuple.3;
let tuple_4 = tuple.4;
quote! { #tuple_0, #tuple_1, #tuple_2, #tuple_3, #tuple_4 };

虽然有效,但这种方式比较繁琐,有没有更好的方法来实现这一点?

vlju58qv

vlju58qv1#

不需要。你需要给变量赋值。但是你可以使用解构:

let tuple = (1, true, -3, 4., "five");
let (tuple_0, tuple_1, tuple_2, tuple_3, tuple_4) = tuple;
quote! { #tuple_0, #tuple_1, #tuple_2, #tuple_3, #tuple_4 };

相关问题