在我的每个函数开始时,我传递一个true或false的调试标志。我想创建一个使用此标志的函数(可能是内联),并仅在值设置为true时打印。 e.g:
fprintff = @(str) debug&fprintf(str)
...
...
fprintff(str); %will only print if debug is set to true
我知道我可以用fprintff(str,debug)
来做,但我想在没有它的情况下使用它。
没有持久性或全球性!
答案 0 :(得分:1)
一种可能性是将调试打印功能定义为依赖&&
运算符的short-circuiting。这种方式fprintf
仅在定义函数时debug_flag == true
进行评估。
function foo(bar,debug_flag)
debug_print = @(varargin) debug_flag && fprintf(1,varargin{:});
...
debug_print('This only prints if debug_flag == true\n');
...
end