如何使用M2Doc为局部变量赋值并在循环中更新其值?
关于Capella模板中变量声明与修改的问题解答
- let结构的适用性:你的场景完全适合用
let结构,它能在局部作用域内声明变量,让后续的循环和判断逻辑共享这个变量,写法没问题。 - 变量赋值的正确语法:Melody模板语言中,赋值用
:=,而=是比较运算符。你代码里的{m:test = true}是错误的赋值写法,需要改成{m:test := true};最后判断条件里的{m:if test = false}是正确的,因为这里是做相等比较。
修正后的完整代码:
{m:let test = false} {m:for req | PIDSREQ.eAllContents()->filter(Requirements::Requirement)} {m:for allocreq | req.eContents()->filter(CapellaRequirements::CapellaIncomingRelation)} {m:if allocreq.target=SF} {m:test := true} {m:endif} {m:endfor} {m:endfor} {m:if test = false} NO REQUIREMENTS {m:endif} {m:endlet}
内容的提问来源于stack exchange,提问作者Stephane Bonnet
相关产品推荐
相关产品推荐

