4

私はこれをやろうとしました:

local
    condition: BOOLEAN
    condition := true
do

そして、このようなもの:

local
    condition: BOOLEAN := true
do

明らかにどちらも機能しませんが、再試行命令が実行された場合に変数を再初期化したくないため、宣言内で変数を初期化する必要があります。私は Eiffel の公式ドキュメントとチュートリアルを見ましたが、操作の本体で常に変数を初期化します。

4

3 に答える 3

8

すべての変数はEiffelで初期化されるため、ローカルではすべてデフォルト値を取得します。これはBOOLEANではfalseです。

再試行の場合、変数はデフォルトに再度初期化されないため、次のように使用できることに注意してください。

test
  local
    retrying: BOOLEAN
  do
    if retrying then
      do_something_else
    else
      retrying := true
      first_try
    end;
  rescue
    handle_error
    retry
  end
于 2011-11-10T20:35:24.310 に答える