2012-10-31 47 views
1

有没有人知道如何返回到一个基地函数/脚本(F/S)时,由基地F/S调用的F/S调用的F/S?混淆我知道......如何返回基本函数/脚本

基地F/S - F/S - F/S - >从这里返回基地F/S

常规return呼叫只会让我到F/S一级以上。

我目前在基础f/s中使用try-catch构造来查找程序出错的时间,但我觉得这是一个不太理想的做法。

谢谢,如果我能澄清任何其他方式,请让我知道。

回答

2

我建议不要使用trycatch块来实现此行为,除非发生实际错误或异常。走这条路线会导致代码不清晰。

取而代之,让内部函数返回一个指示某种状态的值。然后在中间函数中评估该状态以确定中间函数是否应该返回。

下面是一个简单的例子

function outer() 
    middle(); 
end 


function middle() 

    innerResult = inner() 

    switch innerResult 
    case 1: 
     disp('Executing the guts of middle()'); 
    case -1: 
     return; 
    end 


end 

function retVal = inner() 
    if returnToOuter 
    return -1; 
    else 
    return 1; 
    end 
end