否则,嵌套的一些更好的选择是什么?

时间:2019-03-31 09:29:33

标签: mule dataweave

很多次,我遇到必须使用嵌套when otherwise的情况。 也就是说,在某个条件下表达式的计算结果为true之后,我必须检查另一个条件。

嵌套when otherwise是一种好习惯还是有更好的选择?

1 个答案:

答案 0 :(得分:2)

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

when/otherwise的替代方法是模式匹配,它在DataWeave 1.0中可用,但是我找不到它的文档。以下是2.0版的文档:https://docs.mulesoft.com/mule-runtime/4.1/dataweave-pattern-matching

这是一个在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"
}

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