Lolcode - 變數
與任何其他程式語言一樣,LOLCODE 允許您定義各種型別的變數。本章將使您熟悉在 LOLCODE 中使用變數。
變數的作用域
變數的作用域是區域性於函式或程式塊的,即在一個作用域中定義的變數不能在同一程式的任何其他作用域中呼叫。變數只有在聲明後才能訪問。
請注意,LOLCODE 中沒有變數的全域性作用域。
命名約定
變數名稱通常稱為識別符號。以下是 LOLCODE 中變數命名的一些約定:
變數識別符號可以全部大寫或小寫字母(或兩者混合)。
它們只能以字母開頭,然後可以後跟其他字母、數字和下劃線。
LOLCODE 不允許在命名變數時使用空格、破折號或其他符號。
變數識別符號區分大小寫。
以下是 LOLCODE 中變數的有效和無效名稱的一些規則:
名稱應始終以字母開頭。例如,name、Name 是有效的。
變數名不能以數字開頭。例如,2var 是無效的。
變數名不能以特殊字元開頭。
變數可以在其名稱的任何位置包含 _ 或數字,但起始索引除外。例如,name2_m 是一個有效的名稱。
下面顯示了一些 LOLCODE 中有效名稱的示例:
HAI 1.2 I HAS A food ITZ "111.00033" I HAS A food2 ITZ "111" I HAS A fo_od ITZ "1" VISIBLE food VISIBLE food2 VISIBLE fo_od KTHXBYE
上述程式碼中的所有宣告語句都是有效的,並且在執行時將產生以下輸出:
sh-4.3$ lci main.lo 111.00033 111 1
下面給出了一些無效語句及其輸出的示例:
示例 1
HAI 1.2 I HAS A 2food ITZ "111.00033" KTHXBYE
當您執行上述程式碼時,它將給出以下輸出:
sh-4.3$ lci main.lo Line 2: Expected: identifier; Got: int(2).
示例 2
HAI 1.2 I HAS A _food ITZ "111.00033" KTHXBYE
當您執行上述程式碼時,它將給出以下輸出:
sh-4.3$ lci main.lo Line 2: Unrecognized sequence at: _food ITZ "111.00033".
示例 3
HAI 1.2 I HAS A f$ood ITZ "111.00033" KTHXBYE
當您執行上述程式碼時,它將給出以下輸出:
sh-4.3$ lci main.lo Line 2: Unrecognized sequence at: $ood ITZ "111.00033".
變數的宣告和賦值
要宣告一個變數,LOLCODE 提供了一個關鍵字“I HAS A”,後跟變數名。您可以在下面找到宣告變數的語法。
I HAS A VAR BTW VAR is empty now, You can use any name instead of var
要在同一語句中賦值給變數,您可以隨後在變數名後跟“ITZ”,然後給出要賦值的值。使用以下語法為變數賦值:
<variable> R <expression>
示例
VAR R "Green" BTW VAR is now a YARN and equals "Green" VAR R 30 BTW VAR is now a NUMBR and equals 30
您還可以使用以下語法同時宣告和賦值變數:
I HAS A VAR ITZ VALUE
示例
I HAS A NAME ITS “TUTORIALS POINT”
示例
HAI 1.2 BTW this is how we declare variables I HAS A food I HAS A bird BTW this is how we assign variables food R 1 bird R 5 BTW this is how initialize variables I HAS A biz ITZ "OMG!" VISIBLE food VISIBLE biz VISIBLE bird KTHXBYE
上述程式顯示了變數的宣告並列印它們。輸出為:
sh- 4.3$ lci main.lo 1 OMG! 5
型別轉換
要將一個型別的值轉換為另一個型別,我們使用型別轉換。將 NUMBAR 轉換為 NUMBR 會截斷浮點數的小數部分。將 NUMBAR 轉換為 YARN(例如透過列印它),會將輸出截斷為預設的兩位小數。
示例
HAI 1.2 I HAS A food ITZ "111.00033" VISIBLE food BTW this is how we do type casting MAEK food A NUMBAR VISIBLE food KTHXBYE
以上程式碼行將產生以下輸出:
sh-4.3$ lci main.lo 111.00033 111.00033
在 LOLCODE 程式中宣告的所有變數都是區域性變數,並且此語言中沒有任何變數的全域性作用域。