假设我有一个类,其布尔属性ifMsg确定类方法是否会打印诊断消息:
classdef myClass
properties
ifMsg=true
end % properties
methods
function doSomething(o)
disp('Hello world.')
if o.ifMsg
disp('I just greeted the world.')
end % if o.ifMsg
end % function doSomething
end % methods
end % classdef
如果我用if o.ifMsg
替换if false && o.ifMsg
,Matlab JiT编译器会优化if块吗?
问题的背景
我的方法实现代码几乎总是在与classdef m文件分开的m文件中。如果JiT编译器没有基于常量条件表达式o.ifMsg
来优化if-blocks,那么当我需要速度时,我将遍历他们不同类文件夹中的所有m文件,并且评论出这样的if-blocks。当我需要诊断时,我将再次浏览它们以删除注释。如果我不使用单独的方法m文件,事情会变得容易一些,但我不希望我组织代码的方式由此决定。