3
我需要得到宏觀重複元素的索引寫下面的代碼: 如何獲得宏重複單一元素的索引
struct A {
data: [i32; 3]
}
macro_rules! tst {
($($n:ident),*) => {
impl A {
$(
fn $n(self) -> i32 {
self.data[?] // here I need the index
}
),*
}
}
}
我知道做這件事:只是告訴用戶編寫用手指數:
($($i:ident => $n:ident),*)
但是有沒有不需要用戶的動作更優雅的方式?
你在做什麼聽起來很可能是一個壞主意。你應該在可行的情況下支持其他設計例如製作一個'struct A {one:i32,two:i32,three:i32}'。 –
@ChrisMorgan。事實上,它涉及實現像四元數的矢量,其中每種類型的長度都不相同,並且需要不同的訪問器。我認爲如果我爲他們全部使用一個代碼,它可以簡化工作。你爲什麼認爲這是一個壞主意? – Lodin
我無法掌握你實際上正在努力達成的目標。你能分享一個完整的代碼示例嗎? –