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

Syntax 如何在Eiffel中返回值或对象?,syntax,eiffel,Syntax,Eiffel,结果关键字是否自动识别为返回值/对象? 要使用的正确语法是什么? 不幸的是,我无法从文档和各种在线示例中找到明确的指示。关键字结果只是一个具有保留名称的局部变量,并且能够在特征体以及相应的后置条件中使用它。退出功能之前附加到结果的最后一个值是此功能返回的值。以下是一个例子: foo: SOMETHING do Result := bar if Result.whatever then qux (Result) els

结果关键字是否自动识别为返回值/对象?
要使用的正确语法是什么?

不幸的是,我无法从文档和各种在线示例中找到明确的指示。

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

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

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

谢谢您的回答!结果也能返回一个对象吗?@vkouk,“返回一个对象”是什么意思?表达式
某些其他值
在运行时进行计算,并生成附加到
结果
的某些对象。然后该对象由函数
foo
返回。Eiffel中的所有值都是对象。现在我明白了,我还以为在其他高级语言中也有原生类型。谢谢你的回答@vkouk,事实上,有一些类型是编译器预先知道的。它们需要处理文本值,如
True
5
。除此之外,所有类型都遵循相同的规则集。因此,
True
表示扩展类的一个实例
BOOLEAN
5
表示扩展类的一个实例
INTEGER
“ABC”
表示引用类的一个实例
STRING
,等等。所有这些实例都是对象。“文档”是什么?