在上一讲,我为大家简单讲解了一下BT语言中关于:输出,注释,变量,常量,基本类型的知识,而在基本类型的示例中,我用一对反引号声明了一个字符串。
在BT语言中,字符串的声明可以用单引号,双引号以及反引号,如下:
// 单引号
title = 'hello world'
// 双引号
title = "hello world"
// 反引号
title = `hello world`
单引号和双引号性质一样(都支持换行),而反引号则在原有的基础上增加了对 变量 以及 表达式 的支持。
title = '落叶知秋'
time = date('%Y-%m-%d %h-%i-%s')
tag = ['季节' '秋天']
print `
标题:${title}
时间:${time}
标签:${tag.join(',')}
`
这种语法与 JavaScript 类似,在 JavaScript 中也是使用反引号来声明这种字符串模板的,变量使用 ${} 标签包裹,不过在BT中,语法更加自由。
注意:由于语法的原因,${} 中不能使用带花括号的语句表达式,如果需要执行BT语言,可使用标签:{% BT代码 %}
tag = ['季节' '秋天']
// 输出:标签:季节 秋天
print `
标签:{%
for v in tag{
print v + ' '
}
%}
`
在字符串模板中,${} 主要用于放置变量或简单的表达式,{%%} 主要放置多行复杂的表达式,不过使用 {%%} 标签需要注意,只有执行输出函数(例如:print或println)才会输出内容,而 ${} 标签则不需要,默认输出表达式的最后一条语句,例如里面出现了多条语句,如下:
// 输出:标题:hello,world!
print `
标题:${title = ['hello' 'world'], title.join(',') + '!'}
`
字符串模板在BT中十分重要,如果你使用过 PHP,应该对 <?php ?> 标签十分熟悉,在 Web 端中,做为脚本语言具有其它类型语言所不具备的巨大优势:
-
不需要编译,及时执行输出
-
制作主题模板方便,更加自由快捷
当我们做 Web 开发的时候,这种方式虽然很方便,但做前端主题模板的时候,更希望一个文件就是一个字符串模板,而不用去频繁的使用反引号。
所以,BT语言针对字符串模板还支持另一种模式,在文件的头部添加说明符 # 以及关键字 TPL ,如此便能很方便的声明一个字符串模板文件,支持任何文件格式(可以使用.html),例如创建一个index.bt
文件:
# TPL 文章详情页
{% include('web/tpl/header.bt') %}
<div class="title">${article.title}</div>
<div class="time">${article.time}</div>
<div class="content">${article.content}</div>
{% include('web/tpl/footer.bt') %}
请注意,只需要在文件的头部声明(开头:# TPL,后面是注释,可以写这个页面的名称,方便管理),BT会自动识别,然后编译代码并插入到字符串中,使用的时候使用include
函数即可。
// 一个简单的路由
if http.url == '/index'{
include('web/tpl/index.bt')
}
~~~🐈⬛比特猫~~~~~~~~~~~~~~~~~~~~~~~
官网针对BT语言写了详细的文档,不懂的可以查阅哦。