BT语言中强大的字符串模板

在上一讲,我为大家简单讲解了一下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 + ' '
        }
    %}
`

在字符串模板中,${} 主要用于放置变量或简单的表达式,{%%} 主要放置多行复杂的表达式,不过使用 {%%} 标签需要注意,只有执行输出函数(例如:printprintln)才会输出内容,而 ${} 标签则不需要,默认输出表达式的最后一条语句,例如里面出现了多条语句,如下:

// 输出:标题:hello,world!
print `
    标题:${title = ['hello' 'world'], title.join(',') + '!'}
`

字符串模板在BT中十分重要,如果你使用过 PHP,应该对 <?php ?> 标签十分熟悉,在 Web 端中,做为脚本语言具有其它类型语言所不具备的巨大优势:

  1. 不需要编译,及时执行输出

  2. 制作主题模板方便,更加自由快捷

当我们做 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语言写了详细的文档,不懂的可以查阅哦。

官网地址:https://btlang.org/docs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值