beetl为什么不支持变量作用域呢?
我同时set了"list"和"a"到request里面,然后用下列代码输出:
@ for(a in list){
${a}
@ }
${a}
这时候就提示:“变量已经定义”。
查看了beetl文档后发现“Beelt 中得变量同javascript 不一样,没有自己的作用域”。
我的问题是:为什么不支持作用域呢?(for循环里的a还不能和外边的a同名,这会不会不太方便啊?)
@beetl @闲.大斌
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
补充一下,如下情况是报变量已经定义,这不同于javascript:
var a= 1;
{
var a = "aaa";
}
但是,如下情况是可以的,这个跟js和java语义一致
{
var a = 1;
}
{
var a ="ccccc";
}
谢谢,了解了,虽然开始不习惯,慢慢适应吧
0.6版本的时候是支持作用域的,但后来考虑到作用域下变量重名如果不报错,可能不是个好习惯。所以后来就取消了,所以1.2.0 目前不支持。
因此建议模板中变量名不要重