Sway 參考手冊/基本型別
Sway 透過分析程式碼的含義或值來運作。這適用於從最小的程式碼片段到最大的程式。找出程式碼含義的過程被稱為 *評估*。
自身值為其自身的那些東西被稱為基本型別。Sway 的基本型別可以分為以下型別:整數、實數、字串和符號。
Sway(或更準確地說,Sway 直譯器)對基本型別做出響應,給出值型別加上值本身。
以下是每種型別的示例
sway> 3
INTEGER: 3
sway> -4.9
REAL_NUMBER: -4.9
sway> "hello"
STRING: "hello"
sway> :age
SYMBOL: :age
讓我們更詳細地考察這四種類型。
整數是沒有任何小數部分的數字。整數的例子有
sway> 3; INTEGER: 3 sway> -5; INTEGER: -5 sway> 0; INTEGER: 0
整數必須以數字或負號開頭。初始負號必須緊跟一個數字。
實數是有小數部分的數字(即使小數部分為零!)。實數的例子有
sway> 3.2;
REAL: 3.20000000000
sway> 4.0;
REAL: 4.00000000000
sway> 5.;
REAL: 5.00000000000
sway> 0.3;
REAL: 0.30000000000
sway> .3;
REAL: 0.30000000000
sway> 3.0e-4;
REAL: 0.00030000000
sway> 3.0e4;
REAL: 30000.0000000
sway> .000000987654321
REAL: 9.8765432e-07
實數必須以數字、負號或小數點開頭。初始負號必須緊跟一個數字或小數點。初始小數點必須緊跟一個數字。Sway 接受以科學記數法表示的實數。例如, 將被輸入為 3.0e-11。'e' 代表指數,10 是理解的,所以 e-11 表示將 'e' 之前的任何東西乘以 .
Sway 直譯器只顯示六到十一有效數字,具體取決於數字的大小,所以 1.234567898765432 會顯示為
sway> 1.234567898765432; REAL: 1.2345678988
不要被騙。雖然結果看起來像 1.2345678988,但它不是。以下程式碼測試這兩個數字是否相等
sway> 1.234567898765432 == 1.2345678988; SYMBOL: :false
大於 小於 的數字將以科學記數法顯示。
要顯示更多(或更少)有效數字,可以使用 *fmt* 函式。以下是顯示小數點後 15 位數字的方法
sway> fmt("%.15f",1.234567898765432);
STRING: 1.234567898765432
*fmt* 函式使用與 C printf 函式相同的格式程式碼。
不要嘗試顯示超過 16 位有效數字;最不重要的數字將不準確。
字串是由雙引號分隔的字元序列
sway> "hello, world!"; STRING: "hello, world!" sway> "x\nx"; STRING: "x\nx" sway> "\"z\""; STRING: "\"z\"" sway> ""; STRING: ""
字串中的字元可以使用反斜槓字元進行 *轉義*,這會改變某些字元的含義。例如,字串中的字元 'n' 指的是字母 'n',而字元序列 '\n' 指的是 *換行符*。反斜槓也會改變字母 't' 的含義,將其轉換為製表符 '\t'。當其他字元被轉義時,它們的含義不會改變。因此 '\z' 等同於 'z'。要在字串中包含反斜槓字元,用反斜槓對其進行轉義,'\\'。請注意,Sway 在被要求給出包含換行符和製表符的字串的值時,會將其顯示為跳脫字元。然而,當字串中的換行符和製表符在程式中被列印時,它們分別以實際的換行符和製表符形式顯示。雙引號可以透過用反斜槓轉義它們來嵌入到字串中。兩個雙引號之間沒有任何字元的字串被稱為空字串。
與某些語言不同,Sway 中沒有字元型別。例如,單個字元 'a' 被輸入為字串 "a"。
Sway 符號是一些以冒號開頭的字元的集合
sway> :abc; SYMBOL: :abc sway> :a+b; SYMBOL: :a+b
當符號在程式中被列印時,冒號將從輸出中省略。符號可以包含除括號、大括號、分號和逗號之外的任何可列印字元。冒號標誌著符號的開始,而空白字元(換行符、製表符和空格)以及禁止的字元標誌著符號的結束。正如我們將在後面看到的那樣,符號對於設定符號常量和傳遞訊息很有用。
Sway 中有一些特殊符號,其中兩個是:true和:false。這些符號被稱為 *布林* 值,用於指導程式的流程。布林這個術語來源於喬治·布林的姓氏,他在 1854 年的論文 "An Investigation of the Laws of Thought, on which are founded the Mathematical Theories of Logic and Probabilities" 中為現代數字計算機奠定了基石之一。所謂的布林邏輯或布林代數關注的是組合真值(即真或假)的規則。正如我們將看到的,瞭解這些規則對於使 Sway 程式正常執行至關重要。特別是,布林表示式將用於控制條件和迴圈。
另一個特殊符號是:null。此符號用於指示列表和陣列的結束;它也指示“未建立”物件。