Какие есть лучшие альтернативы для вложенных, если нет? - PullRequest
1 голос
/ 31 марта 2019

Часто я сталкиваюсь с ситуациями, когда приходится использовать вложенные when otherwise. То есть после того, как выражение оценивается как истинное в условии, я должен проверить другое условие.

Является ли вложенная when otherwise хорошей практикой или есть лучшие альтернативы?

1 Ответ

2 голосов
/ 31 марта 2019

В зависимости от ситуации вы можете сгруппировать их, как и любые другие логические проверки. Некоторые могут быть объединены с 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 вызовами функций, которые вместо этого возвращают логическое значение.

...