如何在Eiffel中返回值或对象?

时间:2017-11-08 14:23:56

标签: syntax eiffel

结果关键字是否会自动识别为返回值/对象?
使用的正确语法是什么?
不幸的是,我无法从文档和在线的各种示例中找到明确的指示。

1 个答案:

答案 0 :(得分:2)

关键字结果只是一个具有保留名称的本地变量,能够在功能体中以及相应的后置条件中使用它。退出要素之前附加到结果的最后一个值是此功能返回的值。这是一个例子:

foo: SOMETHING
    do
        Result := bar
        if Result.whatever then
            qux (Result)
        else
            something_else := Result
            Result := some_other_value
        end
    ensure
        valid_result: Result.is_valid
    end

有一个有效性规则规定结果只能在返回值的功能中使用,因为它在没有返回任何内容的过程中没有意义。