VTL中的美元和感叹号(bang)符号

时间:2018-08-31 08:56:13

标签: velocity dollar-sign vtl

我最近在一些Velocity代码中遇到了这两个变量:

const router = new VueRouter({
  mode: "history",
  base: process.env.BASE_URL,
  routes,
  scrollBehavior: (to, from, savedPosition) => {
    if (savedPosition) {
      return savedPosition;
    } else if (to.hash) {
      return {
        selector: to.hash
      };
    } else {
      return { x: 0, y: 0 };
    }
  }
});

我对它们的相似性感到惊讶,因此我对代码的正确性感到怀疑,并对发现两者之间的差异感兴趣。

速度是否有可能使这两个符号具有任意顺序,或者它们具有不同的用途?你知道答案吗?

2 个答案:

答案 0 :(得分:2)

@Jr。这是我进行VM研发时遵循的指南:http://velocity.apache.org/engine/1.7/user-guide.html

速度使用!$和$!不同事物的注释。如果您使用!$,它将与普通的“!”基本相同运算符,但是$!用作基本检查,以查看变量是否为空,如果为空,则将其打印为空字符串。如果您的变量为空或为空,并且您不使用$!注释,它将实际的变量名称打印为字符串。

答案 1 :(得分:0)

在我最终在people.apache.org上找到答案之前,我在Google上搜索了很多东西,然后堆栈溢出。

据此:

  

很容易将安静的引用符号与   布尔值非运算符。使用非运算符,您可以使用!$ {foo},而   安静的引用符号是$!{foo}。是的,你最终会   有时带有!$!{foo} ...

毕竟很容易,可惜它并没有立即打击我。希望这对某人有帮助。