跳轉到內容

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。此符號用於指示列表和陣列的結束;它也指示“未建立”物件。


啟動 · 組合基本型別

華夏公益教科書