模板語法
概述
本篇文章將介紹模板語法,透過使用變數和表達式,您可以輕鬆地構建所需的內容並進行置換。
而模板語法目前可套用於以下功能:
對話腳本中部分訊息操作。
Webhook 腳本中的參數 Params 與回呼 (Callback)。
變數命名規則
如同多數的程式語言,如 python、JavaScript ..等,交談變數必須遵從以下規則:
變數名稱必須以字母(a-z、A-Z)或下底線(_)開頭。
後續的字元可以是字母、數字(0-9)或下底線(_)。
變數的命名是區分大小寫的,大寫字母(A-Z)和小寫字母(a-z)被視為不同的字元。
以下是一些符合命名規則的變數名稱的範例:
myVariable
count
first_name
age123
符號與運算子
分隔符
模板語法採用 {{ ... }}
與 {% ... %}
兩種符號表達,前者分隔符號將替換為實際字串輸出於內容中,如下面語法顯示,將實際輸出為「王小明,您好!」。
而也可以透過一個點.(dot)符號來顯示變數更深層的內容,例如
而後者 {% ... %}
分隔符號,則用於執行邏輯操作,如 for、if ...等。
算術運算子
模板提供簡易的運算符號,其他包括以下
+
{{ 1 + 2 }}
3
加法,只適用於數值,不可用來串接字串
-
{{ 5 - 3 }}
2
減法
*
{{ 4 * 2 }}
8
乘法
/
{{ 5 / 2 }}
2.5
除法
//
{{ 7 // 2 }}
3
整數除法(取商)
%
{{ 11 % 7 }}
4
取餘數
比較運算子
能直接透過 ==
、!=
、 <
、 >
、 >=
和 <=
,並基於比較的結果回傳邏輯值。
==
:等於。-!
:不等於。<
:小於。>
:大於。>=
:大於或等於。<=
:小於或等於。
針對更為複雜的比較,則可使用 matches
匹配操作符透過正則表達式比較。
條件(三元)運算子
這個運算子能接受兩個運算元作為值並且一個運算元作為條件判斷。而 語法是:條件 ? 數值1 : 數值2
,下方為一些簡單範例。
邏輯運算子
能透過 ?? 判斷 OR 邏輯,假如 運算式1
可以為是的話,回傳 運算式1
; 否則,反之回傳 運算式2
。
流程控制
流程控制是指控製流程的條件語句,如if
、elseif
、else
、for
等。控制語法應放置在 {% ... %}
分隔符內容中。
if...else
當條件成立的時候會執行 if 陳述式裡的語法,而不成立時則執行另外一個陳述式。
for
不斷重複直到一個指定的條件式判斷為 false,直到條件不符合才停止執行,其中 for 的區塊內,你能使用內建的特殊變數。 特殊變數如下:
變數名
描述
loop.index
顯示當前 index(索引),由 1 開始
loop.index0
顯示當前 index(索引),由 0 開始
loop.length
陣列的長度
loop.first
返回 true,若為陣列最初項目
loop.last
返回 true,若為陣列最後項目
以下是根據你提供的語氣與格式,為 split
用法撰寫的一段說明,可直接接續於原本的教學內容中使用:
文字過濾器
運算子
~
{{ 'Hello, ' ~ name }}
Hello, Eason
字串拼接運算子,會自動將變數轉成字串,即使為 null
字串分割
當需要將一段文字依照某個符號拆解為多個部分時,可使用 split
功能。例如將一段姓名依照每個字元拆分為清單資料,便能逐一取用各字:
也可以指定特定符號作為切割依據,例如以逗號分隔的顏色標籤:
分割後的資料可透過 for
語法進行逐一處理,常用於顯示標籤、分解文字內容等需求。
日期過濾器
日期語法可接受字串、DateTime 物件。例如,要顯示當前日期,請將單字 “now” 作為語法的參數。
顯示當前時間
指定時區
預設情況下,日期會套用 FIRST LINE 伺服器的時區顯示,但您可以透過明確指定時區來覆寫它:
如果日期已經是 DateTime 物件,且您想要保持其當前時區,請將時區值傳遞為 false。
Last updated