一般而言,每一個運算式使用一行,但是如果需要更多空間時,可以使用下一行。
以下公式包含五個運算式。因為公式中最後一個運算式的值是 25,因此會傳回數值 25。
範例
//Expressions example //The first expression. Its value is the Number //value 30 10 + 20; //The second expression. Its value is the String //"Hello World". It takes up two lines. "Hello " + "World"; //The third expression. Its value is of Number type {Orders Detail.Quantity} * 2 - 5; //The fourth expression. Its value is of String type If {Orders Detail.Quantity} > 1 Then "multiple units" Else "one unit"; //The fifth and final expression. Its value is the //Number value 25 20 + 5
您可以在最後一個運算式之後加上分號,也可以不加。例如,上述公式也可以如此結尾:
20 + 5;
運算式一節中有些範例公式並沒有分號。其原因在於它們都只包含單一運算式,而在最後一個運算式之後的分號是選擇性的。Crystal 語法中許多公式都可以寫成單一運算式。
請注意,在「多重單位」字串之後並沒有分號。事實上,假如您在此加上一個分號,程式反而會出現錯誤,因為分號會將運算式分開,而
Else "one unit";
並不是一個獨立的運算式,它不能與 If 分開單獨使用。事實上,它是 If 運算式的一部份,因為它敘述了 If 運算式在某些狀況下將會傳回的值。
注意 本範例不是一個實際的例子,因為公式中的前四個運算式對最後一個運算式並沒有任何影響。
在 Crystal 語法中有一個最重要的觀念,就是 Crystal 語法公式是一連串的運算式,公式的結果就是最後一個運算式的值。這種以運算式為基礎的語法,使得您可以用簡短的公式撰寫出許多功能。
範例
//First expression. It declares the Number variable x //and then returns the value of an uninitialized //Number variable, which is 0. NumberVar x; //Second expression. It assigns the value of 30 to x, //and returns 30. x := 30
如果省略第一個運算式,以上的公式就會出現錯誤,其原因在於第二個運算式參考到數值變數 x,而程式在解析運算式之前,必須先宣告相關的 x。
通常,您會使用變數,用公式中較早的運算式來影響最後的運算式。請參閱變數。