2017-07-28 32 views
1

據%bquote()宏函數文檔我沒有標記不成對的「(」與%將它分配給宏變量。%bquote不掩蓋不配對支架

但這代碼不起作用出於某種原因(變量var是空白的結果):

%let var=%bquote((); 
%put &var; 

爲什麼我該如何修復代碼產生預期的結果

回答

2

你在執行時間掩蓋混淆掩蓋?編譯蒂姆e

%BQUOTE掩模特殊字符at execution time

的%BQUOTE函數對待所有括號和通過解析宏變量的引用或宏調用作爲特殊字符,以在執行時進行掩蔽產生引號。 (這並不掩蓋是在編譯時的參數括號或引號)。

要在掩蓋它編譯時候,你必須,因爲你是在一個%let賦予它的價值,你必須使用%str,其中確實要求在括號前加上%

%let var=%str(%(); 

%put &var;