很多次,我遇到必须使用嵌套when otherwise
的情况。
也就是说,在某个条件下表达式的计算结果为true之后,我必须检查另一个条件。
嵌套when otherwise
是一种好习惯还是有更好的选择?
答案 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 < 5
和n > 5
替换为返回布尔值的函数调用。