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。