提问人:Eleno 提问时间:4/26/2020 更新时间:4/26/2020 访问量:54
将派生类的匿名对象传递给 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))
答:
2赞
Alexander Kogtenkov
4/26/2020
#1
您正在寻找一个创建表达式。与创建指令不同,它省略了目标实体,但始终指定创建类型:
create {B}.make (y)
注意。根据经验,如果类型可能与实体混淆,则将其括在大括号中。例如,在短语中,终端被解释为实体名称。将其包含在大括号中可将其提升为一种类型。create B.make (y)
B
上一个:如何访问匿名类型的字段?
评论