Символы доллара и восклицательного знака (взрыва) в VTL - PullRequest
0 голосов
/ 31 августа 2018

Я недавно столкнулся с этими двумя переменными в некотором коде Velocity:

$!variable1
!$variable2

Я был удивлен их сходством, поэтому я начал сомневаться в правильности кода и заинтересовался поиском различий между ними.

Возможно ли, что скорость допускает любой порядок этих двух символов, или они имеют различное назначение? Вы знаете ответ?

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

@ Jr. Вот руководство, которому я следовал, занимаясь исследованиями и разработками ВМ: http://velocity.apache.org/engine/1.7/user-guide.html

Скорость использует! $ И $! аннотации для разных вещей. Если вы используете! $, Это будет в основном то же самое, что и обычный "!" оператор, но $! используется в качестве базовой проверки, чтобы видеть, является ли переменная пустой, и если это так, она выводит ее в виде пустой строки. Если ваша переменная пуста или равна нулю и вы не используете $! аннотация будет печатать фактическое имя переменной в виде строки.

0 голосов
/ 31 августа 2018

Я много гуглил и переполнял стек, прежде чем наконец нашел ответ на people.apache.org .

Согласно этому:

Очень легко спутать обозначение тихой ссылки с логический не-оператор. Используя not-Operator, вы используете! $ {Foo}, а тихая ссылочная нотация - это $! {foo}. И да, вы в конечном итоге иногда с! $! {foo} ...

В конце концов, стыдно, это не поразило меня сразу. Надеюсь, это кому-нибудь поможет.

...