Je suis juste curieux de savoir pourquoi mon compilateur Eclipse Drools (6.5.0) nécessite des points-virgules à la fin des déclarations dans la boucle, comme ci-dessous:Drools MVEL Dialect - Semi-Colon Exigence
Map businessRulesRequest = $root.containsKey("BusinessRulesRequest") ? $root.get("BusinessRulesRequest") : null
Map quoteRequest = businessRulesRequest!=null && businessRulesRequest.containsKey("QuoteRequest") ? businessRulesRequest.get("QuoteRequest") : null
List resultsByKey = quoteRequest!=null && quoteRequest.containsKey("resultsByKey") ? quoteRequest.get("resultsByKey") : new ArrayList()
for (Map search : resultsByKey) {
Map searchInfo = (search.containsKey("searchInfo") ? search.get("searchInfo") : null);
String searchName = searchInfo!=null && searchInfo.containsKey("searchName") ? searchInfo.get("searchName").toString() : "";
List results = (searchName=="quotesMotor" && search.containsKey("results") ? search.get("results") : new ArrayList());
}
Si je supprime les points-virgules de la première ou deuxième ligne de la boucle For, j'obtiens une erreur "jeton inattendu", mais pas si je l'enlève de la dernière ligne de la boucle. Est-il dû au fait que Drools évalue les lignes RHS comme une seule déclaration et qu'elles doivent donc être séparées à l'intérieur des boucles? Remarque: Je comprends que ce n'est pas une bonne pratique de coder en supposant que les points-virgules ne sont pas nécessaires, mais je suis tombé sur ce problème en expérimentant et je suis juste intéressé de connaître la raison de l'erreur du compilateur. Merci.
Merci, et oui on dirait qu'il traite « si », « pour », etc contenu comme une seule ligne, donc si des points-virgules ne sont pas ajoutées à la fin des lignes elle est traitée en une seule déclaration. Il est préférable d'ajouter des points-virgules sur toutes les lignes que je considère comme sûres. – Neil