将派生 class 的匿名对象传递给 Eiffel 中的例程
Passing anonymous object of derived class to a routine in Eiffel
假设我们有:
class A ...
class B inherit A ...
f (a_a: A) ...
那么,你能不能不使用临时变量,写出类似下面的伪代码?
-- `y` is an argument to B's constructor.
f (create B.make(y))
您正在寻找创作表达。与创建指令不同,它省略了目标实体,但始终指定创建类型:
create {B}.make (y)
注意。 根据经验,如果类型可能与实体混淆,则将其括在花括号中。例如,在短语 create B.make (y)
中,终端 B
被解释为实体名称。将其括在大括号中可将其提升为一种类型。
假设我们有:
class A ...
class B inherit A ...
f (a_a: A) ...
那么,你能不能不使用临时变量,写出类似下面的伪代码?
-- `y` is an argument to B's constructor.
f (create B.make(y))
您正在寻找创作表达。与创建指令不同,它省略了目标实体,但始终指定创建类型:
create {B}.make (y)
注意。 根据经验,如果类型可能与实体混淆,则将其括在花括号中。例如,在短语 create B.make (y)
中,终端 B
被解释为实体名称。将其括在大括号中可将其提升为一种类型。