我有一个功能:
def collapse(relations: Set[Relation] ...
Relation
是结构类型
type Relation = {
def source: NodeId
def target: NodeId
}
我有两个案例类:
case class ViewRelation(id: Option[NodeId],
source: NodeId,
target: NodeId, ...
和
case class IndirectRelation(source: NodeId,
target: NodeId...
出于实际原因,我不能让它们从同一个特征延伸出来。因此我决定使用结构类型。
我想传递一个val viewRelations = Set[ViewRelation]
和val indirectRelations: Set[IndirectRelation]
作为参数:collapse(viewRelations ++ indirectRelations)
。不幸的是,这似乎不起作用。即使只传递viewRelations
或indirectRelations
也行不通。我终于以这种方式解决了这个问题:
collapse(Set[Relation](relations.toSeq: _*) ++ Set[Relation](indirectRelations.toSeq: _*))
有更好的方法吗?这非常浪费,因为我可以期待相对大量的关系,并且操作需要经常运行。
答案 0 :(得分:1)
您也可以使用- name: Set the jm_env
set_fact:
jm_env: "{{lookup('env', 'Environment')}}"
- name: Set the l_env
set_fact:
l_env: "{% if jm_env=='Develop' %}d{% elif jm_env=='Staging'%}s{% else %}p{% endif %}"
。