Имеет ли значение пробел при приведении типа «любой» в Apama EPL? - PullRequest
0 голосов
/ 27 февраля 2019

Я на Apama 10.3 (Community Edition):

any emptyString := "";
any emptyDictionary := new dictionary<string,any>;
string myString := <string> emptyString;
dictionary<string,any> := <dictionary<string,any>> emptyDictionary;

Состав в строке 3 работает, но в строке 4 Дизайнер жалуется на неожиданный токен: <.Только если я использую пробелы, он работает:

dictionary<string,any> := <dictionary< string,any> > emptyDictionary;

В документации Разработка приложений Apama это не упоминается, но на странице 296 при приведении с optional<> правильный синтаксис спробелы используются.

Работает ли это как ожидалось или это ошибка?

1 Ответ

0 голосов
/ 27 февраля 2019

Проблема здесь не в приведении к типу any.Это связано с тем, что синтаксический анализатор EPL всегда интерпретирует выражение >> как оператор сдвига вправо.Если вам нужно закрыть две угловые скобки, вам всегда нужно использовать пробел между ними.Это касается только заключительных скобок (так как вам никогда не нужно писать << в EPL).

Форма, которую я всегда использую:

dictionary<string,any> x := <dictionary<string,any> > emptyDictionary;
sequence<sequence<string> > jaggedArray := new sequence<sequence<string> >;
...