語句

語句定義指令碼執行時的動作。這包括建立變數、指派新值、執行計算以及根據給定條件做出邏輯選擇。有些語句只執行一項任務,例如為變數賦值。其他語句會影響指令碼的流程。語句按邏輯循序執行,但每次執行指令碼時,順序都可能發生變化。

Snippet 中的語句由一行或多行代碼組成。簡單的單行語句可以建立一個變數並賦值,如下所示:

ASSIGN firstName = "Beowulf"

一個複雜語句可能有許多巢套行組,如下所示:

ASSIGN Names="Odin|Freya|Thor|Loki" ASSIGN SubCounter=1 FOREACH Name IN Names { IF Name = "Odin" | Name = "Freya" { ASSIGN NewNames[SubCounter]= "{Name}" ASSIGN SubCounter=SubCounter + 1 } }

如果 Snippet 中出現錯誤,可以更改 Snippet 中語句執行的邏輯順序。發生錯誤時,Snippet動作會立即終止。Snippet 中的其餘語句未執行。相反,錯誤訊息會儲存在_ERR變數中,說明問題所在。

語句類型

您可以在 Snippet 中使用以下類型的語句:

  • 聲明:使用 declaration 語句聲明或建立新變數、物件和函數。
  • Decision-Making: 使用 decision-making 語句讓 snippet 代碼根據您指定的條件選擇要執行的任務。您可以使用它們來控制指令碼中的線性流程。
  • Looping:使用 Looping 語句讓 snippet 重複執行一項或一組任務,直到滿足指定的結束條件。
  • 其他:這些語句允許您終止函數、在偵錯期間在 Snippet Editor 視窗中顯示結果,以及在 snippet 中包含網路服務代理 DLL。

關鍵字

關鍵字是語句開頭的命令。它們是預定義的保留術語。編譯器可識別關鍵字並執行與之相關聯的任務。

您可以在 Snippet 中使用的每種語句類型都有一個與之相關的關鍵字。例如,要聲明一個變數,可以使用ASSIGN關鍵字。或者,要選擇語句,可以使用IF關鍵字。語句和關鍵字同名,因此IF語句使用IF關鍵字。

下面介紹Snippet語言中可用的關鍵字以及與每個關鍵字相關的語句。還提供關鍵字的完整清單。

語句語法

所有語句均以關鍵字開頭,後面跟有定義語句功能的單詞或代碼。每條語句都有自己的語法。本頁的語法摘要部分介紹了如何讀取語句語法。

某些語句需要條件碼。這是設定條件並定義滿足或不滿足條件時會發生什麼的代碼。條件碼可以是一條語句,也可以是多條語句。必須始終用大括號 ({ }) 括起來,即使只有一行。條件碼有時稱為區塊

當編譯器遇到新的一行或左大括號時,將會識別陳述式的結尾。大括號的位置有一定的靈活性。以下格式均有效:


IF x=1 {TRACE "one" } 

IF x=1 {TRACE "one" } IF x=2 {TRACE "two" }
IF x=1 {
  TRACE "one"
}

IF x=1
{
  TRACE "one"
}

當嵌入代碼需要多條語句時,請遵循以下規則:

  • 每行放置一條語句。
  • 如果需要多條語句,請將它們放在不同的行中。這樣更容易讀取代碼。
  • 需要自己嵌入代碼的嵌入式語句可以佔據多行,按照中的有效格式使用大括號

語法摘要

在涵蓋每種語句類型的線上說明頁面中,每種語句類型都有語法摘要。摘要顯示了該類語句使用的格式。它會告訴您哪些元素是必需的,哪些是可選的。它還展示了語法元素必須如何嵌套。

下表定義了語法摘要中的每個元素。並非所有語句都包含每個元素。在解讀語法摘要時,請密切注意元素的嵌套。

元素

詳細資訊

COMMAND

這是語句中要使用的關鍵字名稱。將COMMAND 替換為要建立語句的關鍵字。

關鍵字不區分大小寫。例如,對於編譯器來說,FOREACHforeach 相同。不過,下次打開 Snippet 時,Snippet動作會自動將所有關鍵字轉換為大寫。

在線上說明中,關鍵字的格式始終為大寫字母。

<required>

尖括號表示必要元素。括號內的文字表示元素的種類,如運算式、變數或常值。

例如,在FOREACH語句語法摘要中,有兩個必要元素:

FOREACH <var> in <array> { ... [ BREAK]}

在指令碼中絕對不能按字面意思使用尖括號和括號內的文字。將該部分替換為其描述的代碼元素。例如,用i = 0這樣的運算式替換<expression>

[optional]

方括號表示可選元素。括號內的文字表示您可以使用的元素類型。例如,在IF語法摘要中,可選的ELSE子句用方括號括起來:[ELSE { ... }

如果使用可選元素,它必須出現在語法摘要中指示的相對於其他元素的位置。

在指令碼中絕對不能按字面意思使用方括號。

{ ... } 大括號表示可以使用代碼塊。

大括號與語法摘要中使用的尖括號和方括號不同。尖括號和方括號不應該包含在您的代碼中,但大括號必須按字面意思包含在您的代碼中。但是,您應該將大括號中的省略號 ( ... ) 替換為Snippet語句。

豎線 ( | )

豎線字元表示您可以選擇在語句中包含哪些內容。例如,在ASSIGN語句的語法摘要中,豎線字元表示您可以選擇用雙引號將值括起來:

ASSIGN <variable> = "<value>" | <value>

語法解釋說明了選擇。

省略號 (...)

省略號表示兩種情況之一:

  • 如果在大括號內,則表示代碼在代碼塊中的位。
  • 如果在帶關鍵字的方括號內,則表示一個連續模式。

SELECT語法摘要中,有一個用省略號表示連續模式的範例:

SELECT <{ CASE <expression> [{ ... }] [CASE <expression> <{ ... }>] [CASE ...] [DEFAULT <{ ... }>] }>

[CASE ...]表示您可以按照既定模式繼續新增所需的CASE子句。

例如,本頁使用的IF語句的語法摘要為:

IF <expression> <{ ... }>

該摘要顯示:

  • 關鍵字是IF
  • 下一個元素為必填運算式。
  • 最後一個元素是必須用大括號括起來的必填代碼塊。

SWITCH語句的語法摘要更為複雜:

SWITCH <var> <{CASE <literal> [{ ... }] [CASE <literal> [{ ... }]] [CASE ...] [DEFAULT [{ ... }]] }>

該摘要顯示:

  • 關鍵字是SWITCH
  • 下一個元素為必填變數名。
  • 該代碼塊為必填代碼塊,必須包含一個有常值的CASE子句。
  • 必填CASE子句可包含一個可選代碼塊。
  • SWITCH語句的代碼塊可以包含額外的可選CASE子句,並遵循摘要中確定的模式。
  • SWITCH語句的代碼塊可以包含一個可選的DEFAULT子句,並帶有一個可選的代碼塊。