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(例如,通过打印)会将输出截断为默认的小数点后 2 位。
例子
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 程序中声明的所有变量都是局部变量,并且该语言中的任何变量都没有全局作用域。