【发布时间】:2020-06-04 13:12:49
【问题描述】:
我想知道 dm-script 中是否没有惰性求值?
我有以下代码片段来检查TagGroup 是否有效。它抛出一个错误,告诉我TagGroup 未定义,因此TagGroupCountTags() 函数无法在此TagGroup 上执行。但这就是这个片段的目的,检查TagGroup 和index 是否有效。
我尝试调试代码。第一条语句tg.TagGroupIsValid() 返回false,0 <= index 当然也是。为什么tg.TagGroupCountTags() 仍在执行?我不能相信没有懒惰的评价。
number index = -1; // of course this is not set to -1 in my original code, this is just for demonstration
TagGroup tg;
clearResults();
result(tg.TagGroupIsValid() + "\n"); // resturns 0
result((0 <= index) + "\n"); // returns 0
if(tg.TagGroupIsValid() && 0 <= index && index < tg.TagGroupCountTags()){
result("Valid.");
}
else{
result("Invalid.");
}
【问题讨论】: