我最近在一些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 };
}
}
});
我对它们的相似性感到惊讶,因此我对代码的正确性感到怀疑,并对发现两者之间的差异感兴趣。
速度是否有可能使这两个符号具有任意顺序,或者它们具有不同的用途?你知道答案吗?
答案 0 :(得分:2)
@Jr。这是我进行VM研发时遵循的指南:http://velocity.apache.org/engine/1.7/user-guide.html
速度使用!$和$!不同事物的注释。如果您使用!$,它将与普通的“!”基本相同运算符,但是$!用作基本检查,以查看变量是否为空,如果为空,则将其打印为空字符串。如果您的变量为空或为空,并且您不使用$!注释,它将实际的变量名称打印为字符串。
答案 1 :(得分:0)
在我最终在people.apache.org上找到答案之前,我在Google上搜索了很多东西,然后堆栈溢出。
据此:
很容易将安静的引用符号与 布尔值非运算符。使用非运算符,您可以使用!$ {foo},而 安静的引用符号是$!{foo}。是的,你最终会 有时带有!$!{foo} ...
毕竟很容易,可惜它并没有立即打击我。希望这对某人有帮助。