1

ベース f/s によって呼び出された af/s によって呼び出された af/s 内で、ベース関数/スクリプト (f/s) に戻る方法を知っている人はいますか? 紛らわしいです...

ベース f/s - f/s - f/s --> ここからベース f/s に戻る

通常のreturn呼び出しでは、1 レベル上の f/s にしか到達できません。

私は現在try-catch、ベース f/s の構成を使用してプログラムのエラーを検出していますが、これは理想的とは言えない方法だと思います。

ありがとうございます。他の方法で明確にできる場合はお知らせください。

4

1 に答える 1

2

try catch実際のエラーまたは例外が発生していない限り、この動作を実現するためにブロックを使用しないことをお勧めします。このルートに進むと、コードが明確になりません。

代わりに、内部関数にステータスを示す値を返すようにします。次に、middle関数でそのステータスを評価して、middle関数も戻る必要があるかどうかを判断します。

これが簡単な例です

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
于 2012-10-31T14:59:53.183 に答える