COMMENT
- это утверждение, как и любое другое представленное заявление. По сути, это то же самое, что и *
, потому что оператор комментария заканчивается первой точкой с запятой (;
). В документации конкретно не указано, что *
является псевдонимом для COMMENT
, но перечислены * ... ;
и /* ... */
.
Другой способ прокомментировать несколько операторов, которые также содержат блоки комментариев, - это вложить код внутрь определение макроса.
Пример:
proc print data=sashelp.class;
run;
%macro MY_COMMENT;
* This part contains more statements;
proc print sashelp.cars;
run;
/* And there are comments in both styles of commenting */
%* But inside an uncalled macro everything acts like a giant comment block;
%mend MY_COMMENT;
* return to normal processing;
Для очень больших блоков закомментированного кода во время разработки кода я часто помещаю закомментированную часть в NOSOURCE
и SOURCE
, чтобы предотвращение засорения журнала.
...
options NOSOURCE;
/*
Big chunk commented out during development to temporarily prevent
rerunning ETL process steps or regenerating already OK reporting code
*/
options SOURCE;
* work on new additional part of process flow here;
...
Другие приемы комментирования
Способ 1 - /**/
пар
Если код постоянно комментируется только комментариями в стиле *;
, тогда блоки кода можно легко комментировать и раскомментировать, используя вводный /**/
или /** /
и закрывающий /**/
.
Без комментариев - вступление представляет собой простой комментарий
/**/ * some code here; /**/
Комментарий - лишний пробел во вступлении приводит к тому, что комментарий закрывается последним */
/** / * some code here; /**/
Способ 2 - /* *; */;
переключение
Требуется *;
комментарий в качестве первой строки блока, и никаких /* */
комментариев внутри.
Отключить, код блока закомментирован
/*
*intro;
... block ...
*/;
вместо
Включите, код блока не закомментирован
*/*
*intro;
... block ...
*/;
Расширенный редактор
- Комментарий
- Выберите блок строк и нажмите
Ctrl-/
.
Все строки станут отдельными блоками комментариев в стиле /*original line*/
.
- Раскомментировать
- Выберите блок строк и нажмите
Ctrl-Shift-/
.
Начальный /*
и завершающий */
каждой строки будут удалены.
Макропеременная
Используйте переменная флага со значением
или *
в качестве вводной инструкции для включения или отключения операторов .
%if %sysget(USERNAME)=Richard %then %do;
%let flag=*;
%end;
%else %do;
%let flag=;
%end;
&flag. PROC PRINT ...;
&flag. ...;
&flag. ...;
&flag. run;