2014-10-27 24 views
2

在macro_rules!你可以聲明不同類型的東西在冒號後解析(比如$ x:ident用於標識符,或者$ y:ty用於類型),但是我很困惑我將如何聲明我想要捕獲一個生命週期,像'一個或'靜態。這可能嗎?在生鏽macro_rules捕獲生存期

回答

1

您可以將它們捕獲爲$ exprs。

+0

我試過這樣做,它似乎並沒有爲我工作。以下是圍欄:[http://is.gd/dNaiiS](http://is.gd/dNaiiS)。我做錯了嗎? – Mystor 2014-11-07 07:20:42

+0

它需要是一個已經定義的工作時間。在這個例子中,在一生中提供一個特定的名字沒有真正的目的,因爲它只是被用作一個通用參數。如果生命週期已經定義(例如作爲循環的標籤),那麼$ expr可以正常工作。但是我可以想象,如果你在一生中有一個參數化的特徵或結構,它會很有用,但實際上我不確定是否有辦法做到這一點(我從來不需要這樣做)。 – 2014-11-07 21:19:18

+1

下面是一個很有用的例子:http://is.gd/9Qj1H3。我想用這個,因爲我有一個宏,它會生成一個通用的函數,這個函數在一生中是一樣的,因爲它接受了一個參數化的參數。在我的情況下,函數的主體通常希望返回一個任意值,但有時它會返回一個從參數中提取的值,它只能在給定的生命週期中生存。 – Mystor 2014-11-09 22:40:05