jzhyue 发表于 2009-12-16 09:27  2、用macro shift之后,syntax定义的varlist(or anthing)失去定义,此时可用`*'代表macro shift定义后的宏
2、用macro shift之后,syntax定义的varlist(or anthing)失去定义,此时可用`*'代表macro shift定义后的宏
似乎不能这样说。
使用macro shift [#]后,`varlist'的意义并没有变化,而是`1'、`2'、……、`*'的意义变化了。
-------------------------------
stata将syntax(或者所定义的命令)后面的
所有内容视作一系列macros(不仅是`varlist'或`anything'),这些macros以空格相区分。而`1'、`2'、……、`*'以及macro shift [#] 针对的就是这一系列macros。
未经macro shift [#],`1'、`2'、……、`*'表示这一系列macros中的第一个、第二个、……、全部macros;
经macro shift [#]后,`1'、`2'、……、`*'表示这一系列macros的
剩余部分中的第一个、第二个、……、全部macros。