1
是否有可能在Rust宏中多次使用參數,只有一次實例化參數?是否有可能在單一instansiation的Rust宏中多次使用參數?
就拿這個簡單的例子:
macro_rules! squared {
($x:expr) => {
$x * $x
}
}
雖然這個作品,如果喜歡叫squared!(some_function() + 1)
,該函數將被多次調用。有沒有辦法避免這種情況?
非工作示例:
macro_rules! squared {
($x:expr) => {
let y = $x;
y * y
}
}
給出一個編譯錯誤:
error: expected expression, found statement (`let`)
你可以[編輯]你的問題來解釋爲什麼你的例子是「不工作」? [它似乎爲我工作](https://play.rust-lang.org/?gist=9f89d79b921d6036998e2cabc267c740)。 – Shepmaster
注意到有問題的錯誤。 – ideasman42
你是否點擊我的第二個鏈接,顯示你的第二個宏和事實**,它的作品**?你可以[編輯]你的問題,以顯示你如何調用第二個宏,使其失敗?也許你甚至可以[在操場上創建一些東西](https://play.rust-lang.org)完全重現錯誤?在提出關於堆棧溢出的問題時,您預計會創建一個[MCVE]。 – Shepmaster