Mule 如果不是这样的话,有哪些更好的替代方案?

Mule 如果不是这样的话,有哪些更好的替代方案?,mule,dataweave,Mule,Dataweave,很多时候,我都会遇到这样的情况,即我必须使用嵌套的,否则就必须使用嵌套的。 也就是说,在一个条件中表达式的计算结果为true之后,我必须检查另一个条件 嵌套的是否是一种良好的做法,或者是否有更好的替代方法?根据情况,您可以像其他布尔检查一样对它们进行分组。有些可以与和组合,有些可以与或组合,有些可以与不组合。将布尔检查分组为一组具有描述性名称的函数可能会有所帮助 模式匹配是when/other的另一种选择,它在DataWeave 1.0中可用,但我找不到它的文档。以下是2.0的文档: 下面是1.

很多时候,我都会遇到这样的情况,即我必须使用嵌套的
,否则就必须使用嵌套的
。
也就是说,在一个条件中表达式的计算结果为true之后,我必须检查另一个条件


嵌套的
是否是一种良好的做法,或者是否有更好的替代方法?

根据情况,您可以像其他布尔检查一样对它们进行分组。有些可以与
组合,有些可以与
组合,有些可以与
组合。将布尔检查分组为一组具有描述性名称的函数可能会有所帮助

模式匹配是
when/other
的另一种选择,它在DataWeave 1.0中可用,但我找不到它的文档。以下是2.0的文档:

下面是1.0中布尔表达式的模式匹配示例:

5 match {
  n when n < 5 -> "number is less than 5"
  n when n > 5 -> "number is greater than 5"
  default      -> "number is 5"
}
5匹配{
当n<5->“数字小于5”时为n
n当n>5时->数字大于5
默认值->“数字为5”
}

您可以用返回布尔值的函数调用替换
n<5
n>5

可能是我没有正确地传达它。我的意思是:
(“x”当表达式2否则“y”)当(表达式1)否则(“xx”当表达式3否则“yy”)
我不确定是否可以使用模式匹配来编写这种条件。啊可能是箭头右边的另一个条件。但可能不是很优雅,我想你表达得很恰当。我只是列出了在DataWeave中组织布尔逻辑的选项。您可以1)内联when/Others 2)将when/Others分组到函数中并调用这些函数,或者3)使用模式匹配选项1和2。