如何在Eiffel的声明中初始化局部变量?

Ram*_*ama 4 variables eiffel

我试着这样做:

local
    condition: BOOLEAN
    condition := true
do
Run Code Online (Sandbox Code Playgroud)

这样的事情:

local
    condition: BOOLEAN := true
do
Run Code Online (Sandbox Code Playgroud)

显然既不起作用,但我需要在声明中初始化变量,因为如果执行重试指令,我不希望变量重新初始化.我查看了Eiffel的官方文档和教程,但它们始终将操作体中的变量初始化.

Ber*_*oer 7

每个变量都在Eiffel中初始化,因此在本地它们都获得默认值,对于BOOLEAN来说是假的.

请注意,对于重试,变量不会再次初始化为其默认值,因此您可以将其用于:

test
  local
    retrying: BOOLEAN
  do
    if retrying then
      do_something_else
    else
      retrying := true
      first_try
    end;
  rescue
    handle_error
    retry
  end
Run Code Online (Sandbox Code Playgroud)